《opencv实用探索·一》QT+opencv实现图片拼接和Mat转QImage

本文利用opencv实现了几个好用的功能,包含两个文件,如下:
在这里插入图片描述
源码放在文章末尾

imageProcessing类包含三个功能:
1、图像拼接

cv::Mat imageMosaic(cv::Mat mat1, cv::Mat mat2, MosaicMode mosaicMode);

mat1和mat2为两个待拼接的源图像;
mosaicMode为enum类型,如下:


typedef enum MosaicMode
{
	LeftRight,
	TopButtom
}MosaicMode;

主要包含左右拼接和上下拼接。

效果:
左右拼接:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上下拼接:
在这里插入图片描述

在这里插入图片描述

2、图像重叠拼接

cv::Mat imageMosaicByOverlap(cv::Mat mat1, cv::Mat mat2, int offset, MosaicMode mosaicMode);

mat1和mat2为两个待拼接的源图像;

offset为重叠区域, 比如拼接a,b两张图片,a图片包含内容m和n, b图片包含内容n和j,a和b图片有重叠内容为n,拼接成功后图片显示为m+n+j,即只显示一次重叠部分。左右拼接后的图像宽度为a.width+b.width-offset,上下拼接后的图像高度为a.height+b.height-offset;

mosaicMode包含左右拼接和上下拼接;

效果:
左右图像重叠拼接:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、Mat转QImage

QImage cvMat2QImage(const cv::Mat& mat, bool clone = true, bool rb_swap = true);

mat为待转换源图像;

clone true 表示与 Mat 不共享内存,更改生成的 mat 不会影响原始图像,false 则会与 mat 共享内存;

rb_swap 只针对 CV_8UC3 格式,如果 true 则会调换 R 与 B RGB->BGR,如果共享内存的话原始图像也会发生变化;需要注意的是在opencv中图像顺序为BGR,而在QT中QImage图像顺序为RGB;

源码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/168395.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

美国DDoS服务器:如何保护你的网站免遭攻击?

​  在当今数字化时代,互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展,网络安全问题也日益严重。其中,DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么,如何保护你的网站免遭DDoS攻击呢?下面将介绍…

CMMI之项目管理类核心框架

项目管理类过程域涵盖了与项目的计划、监督和控制相关的项目管理活动。 CMMI-DEV 中的七个项目管理类过程域是: • 集成项目管理(Integrated Project Management, IPM) • 项目监督与控制(Project Monitoring and Cont…

23.11.19日总结(vue2和vue3的区别,项目中期总结)

经过昨天的中期答辩,其实可以看出来项目进度太慢了,现在是第十周,预计第十四周是终级答辩,在这段时间要把项目写完。 前端要加上一个未登录的拦截器,后端加上全局的异常处理。对于饿了么项目的商品建表,之前…

亚马逊高级API申请

一、背景介绍 亚马逊公司提供了丰富的API接口,以便开发者能够轻松地与其服务进行集成。这些API接口包括各种功能,如商品信息查询、订单处理、客户关系管理等。本文旨在帮助您如何申请亚马逊的高级API,并确保您的应用符合亚马逊公司的要求和标…

一图多码如何分解?快速做二维码解码的方法

当遇到一张图片里面有多个二维码时,想要将图片中的二维码分解成链接或者文本,该如何来操作呢?一般解决这个问题的方法多会通过使用二维码解码器来完成操作,那么对于还不知道的怎么操作的小伙伴,下面的方法可以来学习一…

【linux】 mpstat 使用

​mpstat mpstat 可以查看所有cpu的平均负载,也可以查看指定cpu的负载。所以mpstat其实就是主要查看CPU负载的一个工具。是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标。 mpstat 是sysstat中的一个工…

数据结构:lambda表达式

基本概念 语法 // 1. 不需要参数,返回值为 2 () -> 2 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的和 (x, y) -> x y // 4. 接收2个int型整数,返回他们的乘积 (int x, int y) -> x * y // 5. 接受一个 string 对…

支持导入ics文件的提醒待办类工具

上个月腾讯待办突然发布因业务发展方向调整,腾讯待办将于2023年12月20日停运并下架,如需保存数据请在停运日期前导出数据,打开腾讯待办后会弹出保存数据的操作提示。 官方发布消息后,很多人不禁疑问:腾讯待办停运后还…

系列十、ReentrantReadWriteLock

一、概述 ReentrantReadWriteLock是ReadWriteLock的一个子类,具有读锁和写锁的双重功能,通常用于做缓存。 二、案例代码 2.1、ReentrantReadWriteLockCache /*** Author : 一叶浮萍归大海* Date: 2023/11/20 17:57* Description: 使用ReentrantReadWri…

淘宝商品详情数据接口(Taobao.item_get)

淘宝商品详情接口是一种程序化的接口,允许开发者根据商品ID或商品链接,获取淘宝平台上的商品详细信息。通过这个接口,开发者可以方便地获取商品的标题、价格、销量、描述等数据,进而提供给用户进行展示和购买。 使用淘宝商品详情…

【微信公众号开发】1.3 编辑模式之自动回复

一、内容 二、回复分类 首先开启自动回复 1. 关键词回复 2. 收到消息回复 3. 被关注回复 三、实战 1. 微信扫码关注 2. 回复1,2 一、内容 关注订阅号自动回复功能 二、回复分类 说明关键词回复可以根据设置关键字回复收到消息回复开发能力,灵活回复&…

STM32获取最大堆栈空间

参考 stackflow相关讨论 原理 通过参考链接,可知探测Stack的最大深度是先在stack中填充不常用的特定值,然后实时检测这些值哪些发生了变化,变化的表示使用到了这个空间,如果程序完全遍历后,有些值还是没变&#xff…

Django学习日志08

如何开启事务 事务的目的:为了保证多个SQL语句执行成功,执行失败,前后保持一致,保证数据安全 ACID属性: A:原子性(Atomicity):指事务是原子的,对事务中的操…

二分查找——704. 二分查找

文章目录 1. 题目2. 算法原理2.1 暴力解法2.2 二分查找 3. 代码实现 1. 题目 题目链接:704. 二分查找 - 力扣(LeetCode) 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索…

NX二次开发UF_CAM_ask_cutter_db_object 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_cutter_db_object Defined in: uf_cam.h int UF_CAM_ask_cutter_db_object(UF_CAM_db_object_t * db_obj ) overview 概述 This function provides the database object which is curre…

深信服测开实习

感觉会有人对这种类型的博客感兴趣,所以想了想还是发上来了。 今天早上十点收到了通知,这周五报道。 大致说工作时长: 周一到周五 一二四 早上九点到中午十二点。两小时午休。下午两点到晚上六点半。一小时晚休。七点半到晚上八点半下班。三…

CompletableFuture.join() vs Future.get(),开发中哪个更好

CompletableFuture和Future都是Java中的接口,用于异步编程和并发处理。 Future表示一种异步计算的结果,可以通过get()方法获取计算结果或等待计算的完成。但是,如果计算还未完成,get()方法会阻塞线程,这会影响并发性能…

手写promis(1)

目录 前言 核心功能--构造函数 核心功能--状态及原因 then方法 成功和失败回调 异步及多次调用 异步任务--核心api Promise.then: queueMicrotask: MutationObserver: setImmediate: setTimeout: 异步任务---函数封装 前言 Promise(承诺)…

竞赛选题 行人重识别(person reid) - 机器视觉 深度学习 opencv python

文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习行人重识别(person reid)系统 该项目…

KiCad源代码研究:KiCad是如何渲染和绘图的。

common.json文件中appearance.show_scrollbars common.json对应于代码的common_settings 1.EDA_DRAW_PANEL_GAL类 EDA_DRAW_PANEL_GAL类中定义了绘图的基本要素: /// Interface for drawing objects on a 2D-surfaceKIGFX::GAL* m_gal;/// Stores v…