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之间轻松地传递图像数据。

相关推荐
科技林总18 分钟前
【论文】MemGPT: Towards LLMs as Operating Systems
人工智能
黎阳之光19 分钟前
黎阳之光透明管理:视频孪生重构智慧仓储新范式
人工智能·算法·安全·重构·数字孪生
qq_4112624221 分钟前
四博CozyLife AI智能音响方案:技术化设计与实现
人工智能·智能音箱
水如烟37 分钟前
孤能子视角:OpenAI,再看强关系与弱关系
人工智能
MediaTea1 小时前
AI 术语通俗词典:权重参数
人工智能
基因改造者1 小时前
Hermes Agent 配置指南
人工智能·ai·hermes agent
QuestLab1 小时前
【第22期】2026年4月25日 AI日报
人工智能
技术传感器1 小时前
Hermes为什么开始像基础设施:11万星、RCE修复与生态接入
人工智能·安全·架构·aigc
aq55356001 小时前
AI训练GPU算力指南:从入门到超算的精准匹配
人工智能·gpu算力
隔窗听雨眠1 小时前
GPU算力梯队与任务匹配指南
人工智能·gpu算力