• Mat转换为QImage


      

    请留意:

    opencv为3.0.0版本,Qt为4.8.4版本

     1 #include"image1.h"
     2 #include<QApplication>
     3 #include<QImage>
     4 #include<QDebug>
     5 #include<opencv2/opencv.hpp>
     6 
     7 int main(int argv , char* argc[] ){
     8 
     9     QApplication a(argv,argc);
    10     QImage img;
    11     cv::Mat mat = cv::imread("D:\image\4.png",true); 
    12     if(mat.empty()){
    13 
    14         qDebug()<<"load image fail!";
    15       return a.exec();
    16     }
    17     int chana = mat.channels();
    18     //依据通道数不同,改变不同的装换方式
    19     if(3 == chana ){
    20         //调整通道次序
    21         cv::cvtColor(mat,mat,CV_BGR2RGB);
    22         img = QImage(static_cast<uchar *>(mat.data),mat.cols,mat.rows,QImage::Format_RGB888);
    23     }else if(4 == chana ){
    24         //argb
    25         img = QImage(static_cast<uchar *>(mat.data),mat.cols,mat.rows,QImage::Format_ARGB32);
    26     }else {
    27         //单通道,灰度图
    28         img = QImage( mat.cols, mat.rows , QImage::Format_Indexed8);
    29         uchar * matdata = mat.data;
    30         for(int row = 0 ; row <mat.rows ; ++row ){
    31             uchar* rowdata = img.scanLine( row );
    32             memcpy(rowdata,matdata ,mat.cols);
    33             matdata+=mat.cols;
    34         }
    35     }
    36     Image1 w ;
    37     w.load(img);
    38     w.show();
    39   return a.exec();
    40 }

    效果图:

    用Qimage进行缩放:

           

    当然也可以用opencv自带的imshow进行显示

     
  • 相关阅读:
    .globl分析
    ARM汇编指令
    汇编文件后缀.s与.S
    Uboot命令
    BIOS、BootLoader、uboot对比
    汇编的WEAK关键字
    USB OTG
    前端学习笔记——CSS选择器
    前端学习笔记——HTML
    【1】python模块:自定义模块的3种导入方式
  • 原文地址:https://www.cnblogs.com/gongxijun/p/5149712.html
Copyright © 2020-2023  润新知