OpenCV cv::Mat和QImage互相转换

在使用OpenCV和Qt进行图像处理时,经常需要将cv::MatQImage之间进行转换。下面是cv::MatQImage之间的相互转换方法:

将cv::Mat转换为QImage:

cv::Mat cvImage; // 你的cv::Mat图像

// 将cv::Mat转换为QImage
QImage qtImage(cvImage.data, cvImage.cols, cvImage.rows, cvImage.step, QImage::Format_RGB888);

// 如果你的cv::Mat是灰度图像,可以使用下面的方法转换:
// QImage qtImage(cvImage.data, cvImage.cols, cvImage.rows, cvImage.step, QImage::Format_Grayscale8);

// 现在,qtImage包含了cv::Mat的图像数据,你可以在Qt中使用它进行显示或进一步处理。

将QImage转换为cv::Mat:

QImage qtImage; // 你的QImage图像

// 将QImage转换为cv::Mat
cv::Mat cvImage(qtImage.height(), qtImage.width(), CV_8UC4, qtImage.bits(), qtImage.bytesPerLine());

// 如果你的QImage是灰度图像,可以使用下面的方法转换:
// cv::Mat cvImage(qtImage.height(), qtImage.width(), CV_8UC1, qtImage.bits(), qtImage.bytesPerLine());

// 现在,cvImage包含了QImage的图像数据,你可以在OpenCV中使用它进行进一步处理。

请注意,这些示例假设图像的格式为RGB(或灰度)。如果你的图像具有其他格式,你需要根据实际情况进行调整。这些转换方法可以帮助你在OpenCV和Qt之间轻松地传递图像数据。文章来源地址https://uudwc.com/A/12a4o

原文地址:https://blog.csdn.net/CHNIM/article/details/133033501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月23日 18:57
下一篇 2023年09月23日 18:57