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);

相关推荐
SomeB1oody几秒前
【Rust中级教程】2.7. API设计原则之灵活性(flexible) Pt.3:借用 vs. 拥有、`Cow`类型、可失败和阻塞的析构函数及解决办法
开发语言·后端·性能优化·rust
m0_7482402512 分钟前
python轻量级框架-flask
开发语言·python·flask
虚假程序设计18 分钟前
opencv 自适应阈值
人工智能·opencv·计算机视觉
论迹24 分钟前
【JavaEE】-- 多线程(初阶)2
java·开发语言·java-ee
+72034 分钟前
如何在java中用httpclient实现rpc post 请求
java·开发语言·rpc
学习两年半的Javaer43 分钟前
Rust语言基础知识详解【一】
开发语言·rust
PyAIGCMaster43 分钟前
50周学习go语言:第四周 函数与错误处理深度解析
开发语言·学习·golang
全栈开发圈44 分钟前
新书速览|Rust汽车电子开发实践
开发语言·rust·汽车
PyAIGCMaster1 小时前
第二周补充:Go语言中&取地址符与fmt函数详解
开发语言·后端·golang
~kiss~1 小时前
Rust学习~tokio简介
开发语言·学习·rust