OpenCV 的 Mat 转 QImage 出错的问题~

Qt开发中一下小细节问题 对于Qt开发过程中,做一个项目在一个大的对话框上锁话的时间相对来说较少,但是花在细节处理的方向上往往占用了很多时间,这次就来个好好的总结一下,自己项目开发中遇到的一些小问题,好让自己更好的记忆,提高自己开发的效率,同时也提供大家参考下,当然如果有错误的地方,还希望大家指出来,我好进行验证并修改,好啦!废话不多说,直接上代码。(开始的时候不进行划分,等有空了,内容duol) 阅读详情

    这几天在编译完OpenCV3.4.2后写了个Qt小Demo验证库是否正确,开始还好,显示都很好的,心情不错~

    后来在多方测试时发现了Mat转QImagesh几个时有几个问题:

    1、有些文件打开是空白的。

          这个问题简单,sh后来是路径问题,OpenCV不支持中文路径导致的。

    2、图像显示错位

          俺感觉应该是图像对齐有问题,后来查资料才知道OpenCV的Mat有可能为了加快执行速度而在每一个row后面做了padding,如果转换有问题,在遇到宽度不是4的倍数时就出现错位,解决方法也很简单,使用QImage的这个构造函数:

QImage::QImage(uchar *data, int width, int height, int bytesPerLine, QImage::Format format, QImageCleanupFunction cleanupFunction = nullptr, void *cleanupInfo = nullptr)

        因为测死比较简单,开始自行计算bytesPerLine,后来发现Mat的step就是,因此,完美解决。

        后来在网上找到了Mat和Qimagehu转的函数,经测试发现不错~

    3、读取图像后转换时直接崩溃

         多方测试后来发现还是图像识别的问题,也就是什么 padding 的问题,修改转换算法即解决。

Qt与OpenCV集成开发:从环境配置到实时视频处理应用实战 在桌面应用开发中,图形用户界面(GUI)与底层图像处理能力的结合是构建高效工具的关键。Qt框架以其强大的跨平台GUI能力著称,而OpenCV则是计算机视觉领域的事实标准库,专注于图像处理、视频分析和机器学习。通过将两者集成,开发者可以构建出既能提供友好交互界面,又能执行复杂视觉计算的应用,如工业质检、安防监控和视频编辑软件。其技术价值在于实现了界面逻辑与数据处理逻辑的解耦,通过多线程架构(如生产者-消费者模型)确保UI流畅性与处理实时性。应用场景广泛覆盖需要实时图像流处理的领域。本文聚焦于**环境搭建**与 阅读详情

相关推荐

如何实现MCGS与S7-200SMART PLC以太网多台通信控制?

第九步:(设备工具箱—设备管理—鼠标依次点击通用TCP/IP父设备—西门子_ Smart200到设备窗口里面去)数据类型:第0位(指PLC地址变量小数点后面的位数,例如我地址是M0.0,那么在数据类型应填写通道的第00位)第十步:(鼠标双击打开通用TCPIP父设备0--[通用TCP/IP父设备]进入通信配置)通道地址:0(指小数点前面起始字节的地址,例如我地址是M0.0,那么应在通道地填写0)。第七步:(选择通用TCP/IP父设备,点击新增,右侧选定设备就会自动添加进去。

u010670857的博客 6716

为什么你的TIFF图片在Qt中显示异常?深度解析QImage与OpenCV的格式转换陷阱

本文深度解析了在Qt中显示TIFF图片时,因QImage与OpenCV格式转换不当导致的显示异常问题。文章详细剖析了TIFF格式的复杂性、QImage的局限性以及OpenCV Mat的数据特性,并提供了从数据加载、归一化、颜色空间转换到内存对齐的完整解决方案,帮助开发者避免常见的格式转换陷阱。

weixin_29227585的博客 550

偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记

①模型整体拟合指标(Goodness-of-Fit, GOF),这个可以看做整体的R方了,上限是1;②指标载荷的具体值;然而,当数据中包含潜变量(即由多个观测指标组合而成的综合概念)时,贝叶斯结构方程不太适用。指标过少(1-2 个)会削弱潜变量的解释力,而指标过多可能增加噪声,影响模型稳定性。如果指标较多,可考虑进一步划分潜变量,但应确保每个指标有意义。掌握这两类方法后,在处理多变量、因果或路径分析研究时,可以根据数据特点与研究需求灵活选择。对于一般的多变量研究,这两类结构方程均为常用且有效的分析方案。

qq_44684643的博客 2011

cv::Mat转换为QImage错误

cv::Mat转换为QImage错误使用Opencv的cv::Mat类转换Qt的QImage发生错误新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 使用Opencv的cv::Mat类转换Qt的QImage发生错误 在使用

qq_45452773的博客 2970

好书分享:Control and Estimation with MATLAB(5th Edition)pdf

基于MATLAB的控制与估计》(第5版)由八章组成,包括控制算法和设计。主要内容包括状态估计和数据平滑、RLS和卡尔曼滤波器状态估计、控制系统设计、自适应控制和PID。书中的概念已经使用MATLAB和Simulink实现。提供了可下载的MATLAB和Simulink文件。适合人群:大学生、研究生、控制类工程研究人员。需要电子版pdf,回复索取。

jixianhu的博客 1510

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

Robot_PLC_HMI_Automation 1513

QT中的QPixmap怎么验证?是否有内容?

QPixmap类是QT对自己的QImage类再次封装(有些例外但忽略不计),用作绘图非常方便,但有时候我们可能会遇到图片丢失或损坏导致读取失败等情况,这些情况将导致QPixmap定义的变量没有正确的赋值,返回值会告诉你有没有加载(正确是true,错误是false)。但!经常这样使用的朋友肯定已经发现这个返回值存在的问题了,只要加载过一次之后都返回true...

m0_57087284的博客 1360

直流无刷电机FOC控制算法 理论到实践 —— 实践

关于直流无刷电机FOC控制算法的理论章节,本人已经在前两章进行过详细说明,大家可以自行进行阅读,请务必了解过理论之后再来学习如何具体进行实现。直流无刷电机FOC控制算法 理论到实践 —— 理论(一)直流无刷电机FOC控制算法 理论到实践 —— 理论(二)本章节主要讨论采用MCU微控制器如何具体实现直流无刷电机的FOC控制。

爱出名的狗腿子 1万+

Opencv Mat 转QImage出现的问题

但是发现和预期的不一样因为Img里面的值在return前同样被改变了一次,是因为我们用的浅拷贝里面的值还是对应的mat所以在mat转化回去后Image里面的值又变回去了。转后后会影响到外面的mat值,然后我再次传入后mat的值已经是转化后的了。所以这个问题解决的方案是再return QImge的时候再一次转化回去。在最近项目中,因为涉及到图像识别相关的模块,所以使用了Opencv,但是发现在转化图片过程中出现了一些问题。这样就算改变了mat也不会再次改变image里面的值。

mr_xiegousi的博客 484

ARFoundation系列讲解 - 手部跟踪编程

通过使用ARFoundation的手部跟踪子系统,我们可以轻松地在AR应用程序中实现与用户手部的交互。通过设置AR环境、创建场景和相机、添加手部跟踪功能以及编写相应的脚本,我们可以开始在AR场景中跟踪和操作用户的手部。在Unity中创建一个新场景,并将AR Session组件添加到场景中的一个空对象上。手部跟踪的具体实现可能因AR设备和平台的不同而有所差异,你可能需要根据你的使用情况进行一些适配和调整。当你将手部放入AR场景中时,手部跟踪系统将触发相应的事件,并调用脚本中的回调函数。

2301_79325339的博客 355

【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(二) - 网络规划

2. 全三层架构设计思路 采用全三层网络架构设计的出发点是: 使用尽量少的交换机高级功能,可以尽可能减少由于功能bug故障造成的问题; 使用尽量少的网络协议,以兼容不通厂商的网络设备 实现简单,易于维护,绝对可靠的路由协议; 通过控制路由来调度流量,尽量减少设备或协议的故障域; 牺牲高级功能带来的便捷,得到更高的可用性和性能; 由上述原则,本文的设计选择只使用静态路由和BGP...

因吹斯汀 1万+

pyqt5 获取Qlabel中的图片并对其进行处理(包括Qimage转换为Mat)

1、提取Qlabel中的图片 qimg=self.showScreenImgLabel.pixmap().toImage() 2、将Qimage转换为mat def qimage2mat(self,qimg): ptr = qimg.constBits() ptr.setsize(qimg.byteCount()) mat = np...

weixin_38383877的博客 7751

beegfs源码分析

BeeGFS的客户端是由一个内核模块和两个系统服务组成的,这里咱们主要分析内核模块。由于BeeGFS的目录树解析,是在父目录DEntry里找子目录或文件DEntry,逐级迭代完成的,所以在Mount文件系统时,须要从管理节点获取根元数据节点的ID,而后再向根元数据节点查询根目录的DEntry的信息,为后续的目录解析打下基础。获取类似/data/beeond/data/dentries/38/51/root/#fSiDs#/文件fileId的父路径。1.1 FileID的生成。Session网络消息。

wfzy的博客 1913

QImage和cv::Mat互转图片出错问题解决

qimage和cvmat互相转换出错,图片变成黑白条状,并且横向会错位的解决方法

qq_58133010的博客 1264

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Qt5利用qcharts画图表,Mat与QImage互转,利用label显示图片等相关

1.怎么理解能用label标签显示和设置图片这件事情? 2.设置可滚动图片的思路?需要借助那个类? 3.Mat类型和QImage类型互相转化函数的思路,主要使用Mat转QImage? 4.怎么获取Mat类型图片的指针? 利用label标签和scrollArea滚动区域显示Mat类型图片 几个图标相关成员变量: ChartView *chartView; QChart ...

vict_wang的博客 2841

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

dlib格式与opencv中Mat格式转换的问题

在利用dlib库定位人脸特征点时,需要将opencv读取的Mat格式的图像转化为dlib可以处理的类型,采用下面的方法。 cv::Mat temp; temp = cv::imread("原始图片1.jpg"); cv_image<bgr_pixel> cimg(temp); 当图片路径不存在时,就会报下面的错误 将上面的程序改写到qt界面程序中 ...

weixin_43487442的博客 500

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

函数方法封装——图片类型QPixmap、QImage与Mat的相互转化

QPixmap、QImage与Mat的相互转化

dusk_and_night的博客 1329

label读取摄像头 pyqt5_Pyqt5在qlabel中拍照并进行处理(包括将qimage转换为mat),pyqt5,获取,Qlabel,的,图片,对,其,Qimage,Mat...

1、提取Qlabel中的图片qimg=self.showScreenImgLabel.pixmap().toImage()2、将Qimage转换为matdef qimage2mat(self,qimg):ptr = qimg.constBits()ptr.setsize(qimg.byteCount())mat = np.array(ptr).reshape(qimg.height(), qimg...

weixin_39524959的博客 440

cv::Mat转换QImage

cvtColor(img, img, CV_BGR2RGB); QImage image((uchar*)img.data,img.cols,img.rows,QImage::Format_RGB888); image = image.convertToFormat(QImage::Format_RGB32); image.save("CurrentImg.jpg");   有两个疑问: c...

weixin_33681778的博客 282

Qt 学习笔记——利用QImage解决cv::imread无法读取中文路径问题

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_44383635的博客 4384

OpenCV&Qt学习之二——QImage的进一步认识

作者:emouse 思·睿 转自:http://www.cnblogs.com/emouse/archive/2013/03/29/2989592.html QImage的指针问题 接着上一篇博客:OpenCV&Qt学习之一——打开图片文件并显示,实现基本的打开图片并转换显示之后接下来将函数在分别进行封装,便于下一步的处理。代码如下: #include "wid

老瓦的笔记本 799
上一篇: MinGW32+CMake+with Qt 编译OpenCV 3.4.2 的一些心得~
DS离心泵
博客等级 码龄19年 5粉丝 8原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值