在计算机视觉应用中,经常需要在不同的图像格式之间进行转换。一种常见的场景是将 OpenCV 的 cv::Mat 转换为 Qt 的 QImage。以下是如何实现这种转换:
对于某些情况,Michal Kottman 的解决方案使用 QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::格式_RGB888);就足够了。但是,如果转换中不包含 img.step,某些图像可能无法正确显示。
为了解决此问题,修改后的解决方案是:
QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::Format_RGB888);
此修改可确保图像无论其具体特征如何,都会正确转换。请记住,如果省略 img.step,Qt 可能不会发出警告,但它的存在对于维护图像完整性至关重要。
以上是如何高效地将OpenCV的cv::Mat转换为Qt的QImage?的详细内容。更多信息请关注PHP中文网其他相关文章!