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

相关推荐
John_ToDebug13 小时前
2026年展望:在技术涌现时代构筑确定性
人工智能·程序人生
AndyHeee13 小时前
【windows使用TensorFlow,GPU无法识别问题汇总,含TensorFlow完整安装过程】
人工智能·windows·tensorflow
jay神14 小时前
基于YOLOv8的木材表面缺陷检测系统
人工智能·深度学习·yolo·计算机视觉·毕业设计
交通上的硅基思维14 小时前
人工智能安全:风险、机制与治理框架研究
人工智能·安全·百度
老百姓懂点AI14 小时前
[测试工程] 告别“玄学”评测:智能体来了(西南总部)基于AI agent指挥官的自动化Eval框架与AI调度官的回归测试
运维·人工智能·自动化
2501_9481201514 小时前
基于量化感知训练的大语言模型压缩方法
人工智能·语言模型·自然语言处理
songyuc14 小时前
【Llava】load_pretrained_model() 说明
人工智能·深度学习
MARS_AI_14 小时前
大模型赋能客户沟通,云蝠大模型呼叫实现问题解决全链路闭环
人工智能·自然语言处理·信息与通信·agi
名为沙丁鱼的猫72914 小时前
【MCP 协议层(Protocol layer)详解】:深入分析MCP Python SDK中协议层的实现机制
人工智能·深度学习·神经网络·机器学习·自然语言处理·nlp
bylander14 小时前
【AI学习】几分钟了解一下Clawdbot
人工智能·智能体·智能体应用