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

Qt+OpenCV显示图片(Mat转QImage然后现在在QLabel上)

一、概述

  此篇主要是记录一下如何将OpenCV集成得到Qt Creator中,并将OpenCV的Mat对象转换为QImage并使用qt的api显示图片

 

  a.使用Qt Creator开发工具集成OpenCV,在.pro文件中配置环境即可,如下图所示

  

 

   b.将Mat对象转为QImage对象并使用Qt显示出来的步骤如下:

  1.将使用OpenCV imread函数加载一张图片

  2.将Mat转为QImage

  3.将QImage转为QPixmap

  4.将QPixmap放到QLabel上并显示出来

二、示例  

复制代码
/**
 * 调用openCV显示一张图片,让图片的尺寸和窗口尺寸保持一致
 * @brief MainWindow::MainWindow
 * @param parent
 */
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    Mat src = imread("C:\\Users\\wei.yang\\Downloads\\girl.jpg");
    //imshow("girl",src);

    QImage dst = QImage(src.data,src.cols,src.rows,src.step,QImage::Format_BGR888);
    this->setFixedSize(QSize(dst.width(),dst.height()));//设置窗口为固定尺寸
    QLabel *label = new QLabel();//创建一个label
    label->setParent(this);//将其父类指向当前窗口,在关闭窗口的时候此label会跟着销毁
    label->setFixedSize(QSize(dst.width(),dst.height()));//设置label为固定尺寸
    label->setScaledContents(true);//
    //label->resize()
    label->setPixmap(QPixmap::fromImage(dst));//在label显示图片




}
复制代码

 

三、显示效果

 

posted on   飘杨......  阅读(1605)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
< 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

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