随笔 - 632  文章 - 17  评论 - 54  阅读 - 93万

Qt显示OpenCV的单通道图片

一、概述

  Qt中显示OpenCV的图片。OpenCV中的Mat默认是3通道图片。但是其灰度图、二值图片会是8位单通道的。

  示例代码中记录了如何显示

二、代码示例

复制代码
#include "ImageUtils.h"

Mat ImageUtils::qImageToMat(QImage qImage) {//QImage转Mat三通道图片
    QImage image = qImage.convertToFormat(QImage::Format_RGB888);
    Mat mat = Mat(image.height(), image.width(), CV_8UC3, image.bits(), image.bytesPerLine());
    return mat;
}

QImage ImageUtils::matToQImage(Mat src) {
    cvtColor(src, src, COLOR_BGR2RGB);//转换色彩空间,因为Mar默认是BGR,要转换为RGB
    QImage qImage(src.data, src.cols, src.rows, src.step, QImage::Format_RGB888);
    return qImage;
}

QImage ImageUtils::matToQImage8(Mat src) {//QImage显示Mat的8位单通道图片
    QImage qimage(src.data, src.cols, src.rows, src.step, QImage::Format_Grayscale8);
    return qimage;
}
复制代码

 

posted on   飘杨......  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2021-12-08 AndroidVideoCache实现预缓存
2013-12-08 使用Android绘图技术绘制一个椭圆形,然后通过触摸事件让该椭圆形跟着手指移动
2013-12-08 Android解决自定义View获取不到焦点的情况
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示