首页 >后端开发 >C++ >如何可靠地将 cv::Mat 转换为 QImage?

如何可靠地将 cv::Mat 转换为 QImage?

Patricia Arquette
Patricia Arquette原创
2024-12-20 02:36:09933浏览

How Can I Reliably Convert a cv::Mat to a QImage?

将 OpenCV cv::Mat 转换为 QImage

OpenCV cv::Mat 和 Qt QImage 是两种常用的数据结构,用于存储和操纵图像。这些格式之间的转换是一项常见任务,有多种方法可以实现此目的。

Michal Kottman 的解决方案

提供了问题中引用的一个解决方案作者:米哈尔·科特曼。此方法涉及将 cv::Mat 数据直接分配给 QImage:

QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step1(), QImage::Format_RGB888);

解决限制

但是,在某些情况下,此方法可能不会产生某些图像的预期结果。为了解决这个问题,提出了一种改进的解决方案:

QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::Format_RGB888);

关键区别

此解决方案的关键区别是在函数调用中包含 img.step 。虽然如果没有此参数,Qt 可能不会引发错误,但它的缺失可能会导致某些图像显示不正确。

结论

通过合并 img.step,此解决方案提供了将 cv::Mat 转换为 QImage 的更稳健的方法,确保在所有情况下图像表示一致且准确。

以上是如何可靠地将 cv::Mat 转换为 QImage?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn