Qt中Opencv转Qimage出现重影或者颜色不对

废话不多说

在qt中opencv获取的图像转qimage时出现重影原因:

图像数据的内存对齐可能会导致画面重影,如果出现误差转换出来的图就会出现重影

解决办法:
cv::Mat image_bgr = cv::imread("example.jpg");
cv::Mat image_aligned;
cv::copyMakeBorder(image_bgr, image_aligned, 0, 0, 0, 0, cv::BORDER_DEFAULT);
QImage qimage(image_aligned.data, image_aligned.cols, image_aligned.rows, QImage::Format_RGB888);

重点在**copyMakeBorder()**这个方法,让数据对齐

出现颜色不对:opencv是bgr,qimage是rgb 如果在获取到opencv没转rgb数据的时候直接用QImage::Format_RGB888,就会出现颜色不对,

解决方案:

1.opencv先转rgb
cv::cvtColor(image_bgr, image_rgb, cv::COLOR_BGR2RGB);
QImage qimage(image_rgb.data, image_rgb.cols, image_rgb.rows, QImage::Format_RGB888);

2.直接设置
QImage qimage(image_rgb.data, image_rgb.cols, image_rgb.rows, QImage::Format_BGR888);

相关推荐
AI的探索之旅2 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车2 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁2 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
词却2 天前
OpenCV学习:CNN 人脸检测
opencv
孙启超2 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int2 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
慧都小项2 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
CoderYanger2 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法