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

相关推荐
上海安当技术21 分钟前
C/S 桌面软件怎么接 UKey 强认证?C# SDK 与 C 动态库集成 WinForms/Qt/工控实战
c语言·qt·c#
(Charon)1 小时前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
雨田言炎2 小时前
五、Qt控件使用说明大全
开发语言·qt
bu_shuo3 小时前
MATLAB中的meshgrid和ndgrid
开发语言·matlab
等一朵映山红3 小时前
基于 OpenCV 实现摄像头实时人脸检测完整流程
人工智能·opencv·计算机视觉
我命由我123453 小时前
Jetpack Compose - MaterialExpressiveTheme 与 MaterialTheme、ColorScheme
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime
深海呐3 小时前
仓颉语言是ArkTs的上层语言吗?就像kotlin和Java
java·开发语言·kotlin·仓颉
熬夜苦读学习4 小时前
Qt--界面优化
开发语言·qt
白露与泡影4 小时前
聊聊物联网Java后端的核心技术难点(水表/电表/充电桩实战)
java·开发语言·物联网
gumichef4 小时前
第一章:面向对象核心——类和对象深度讲解
开发语言·c++