首页 > 其他分享 >QImage 与 Mat 互转

QImage 与 Mat 互转

时间:2024-04-09 14:13:01浏览次数:25  
标签:Mat img CV 互转 cv QImage mat

 

QImage 转 Mat

Mat QImage2Mat(QImage &img)
{
    cv::Mat mat;
    switch (img.format())
    {
    case QImage::Format_RGB32:  //一般Qt读入彩色图后为此格式
        mat = cv::Mat(img.height(), img.width(), CV_8UC4, (void*)img.constBits(), img.bytesPerLine());
        cv::cvtColor(mat,mat,cv::COLOR_BGRA2BGR);   //转3通道
        break;
    case QImage::Format_RGB888:
        mat = cv::Mat(img.height(), img.width(), CV_8UC3, (void*)img.constBits(), img.bytesPerLine());
        cv::cvtColor(mat,mat,cv::COLOR_RGB2BGR);
        break;
    case QImage::Format_Indexed8:
        mat = cv::Mat(img.height(), img.width(), CV_8UC1, (void*)img.constBits(), img.bytesPerLine());
        break;
    }
    return mat;
}

 

Mat 转 QImage

QImage Mat2QImage(Mat &img)
{
    if(img.type()==CV_8UC1 || img.type()==CV_8U)
    {
        QImage image((const uchar *)img.data, img.cols, img.rows, img.step, QImage::Format_Grayscale8);
        return image;
    }
    else if(img.type()==CV_8UC3)
    {
        QImage image((const uchar *)img.data, img.cols, img.rows, img.step, QImage::Format_RGB888);
        return image.rgbSwapped(); 
    }
}

 

 

 

 

 

转:https://www.cnblogs.com/zzzsj/p/16511888.html

 

标签:Mat,img,CV,互转,cv,QImage,mat
From: https://www.cnblogs.com/shiyixirui/p/18123854

相关文章

  • Buffer 与 Mat 互转
    Linux系统做音视频开发,很多时候要用到opencv,就需要把图片Buffer数据转换成Mat对象来使用 Buffer转MatMatBuffer2Mat(unsignedchar*buffer,intlen){vector<unsignedchar>img_data(buffer,buffer+len);Matimg=imdecode(img_data,IMREAD_ANYCOLOR......
  • Linux mformat命令教程:MS-DOS文件系统的磁盘格式化工具(附实例详解和注意事项)
    Linuxmformat命令介绍mformat是一个用于在低级格式化的磁盘上添加MS-DOS文件系统的命令。它可以在已经通过Unix低级格式化的磁盘上添加一个最小的MS-DOS文件系统(包括引导扇区、FAT和根目录)。Linuxmformat命令适用的Linux版本mformat命令在大多数Linux发行版中都可以使......
  • ES查询之简单查询、DSL查询、match和term查询
    目录前言一、Elasticsearch之查询的两种方式1.1准备数据1.2字符串方式查询(简单查询)1.3DSL方式查询二、match与term系列查询2.1match系列查询2.1.1准备数据2.1.2match(按条件查询)2.1.3match_all(查询全部)2.1.4match_phrase(短语查询)2.1.5match_phrase_prefix(最左前缀查询)2.1.......
  • ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
    ASP.NETMVCWebApi接口返回JOSN日期格式化dateformat全局配置WebApiConfigpublicstaticclassWebApiConfig{publicstaticvoidRegister(HttpConfigurationconfig){//WebAPI配置和服务//WebAPI路由config.MapHttpAttributeRoutes......
  • 解释一下 "*.ts?(x)": [ "prettier --no-error-on-unmatched-pattern --cache --parse
    这段配置来自于一个项目的构建工具(如ESLint、Gulp、Webpack等)或者是一个任务运行器(如npmscripts、Makefile、gulpfile.js等)中的脚本命令,它通常是在lint-staged、husky等预提交钩子(GitHooks)配置中用来指定对特定类型文件进行格式化的指令。具体来说:"*.ts?(x)":这是一个glob......
  • 基于融合语义信息改进的内容推荐算法。Improved content recommendation algorithm in
    引言路漫漫其修远兮,吾将上下而求索。每天一篇论文,做更好的自己。本文读的这篇论文为发表于2023年5月28日的一篇名为《基于融合语义信息改进的内容推荐算法》(基于融合语义信息改进的内容推荐算法)的文章,文章主要介绍了基于内容的推荐技术在电子商务和教育领域的广泛应用,以及传统基......
  • 基于深度学习的海洋鱼类识别算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2022a 3.算法理论概述        深度学习在海洋鱼类识别中常采用卷积神经网络(ConvolutionalNeuralNetworks,CNNs)。CNN由多个层级组成,包括卷积层、池化层、全连接层以及分类层。典型流程如下:   训练......
  • 公钥私钥和模数指数相互转换
    pem格式公钥私钥读取解析公钥私钥pem格式加解密示例根据私钥pem生成模数和指数NED生成模数和指数NED的公钥私钥NED导出pem格式#include<SylixOS.h>#include<stdio.h>#include<crypto.h>#include<mbedtls/ssl.h>#include<mbedtls/platform.h>......
  • Windows:IntelliJ IDEA Ultimate 安装 PHP 插件
    在IntelliJIDEAUltimate中安装PHP插件,支持PHP开发调试首先,进入File>Setting:再次选择Plugins,然后选择上面的Marketplace。在搜索栏中输入PHP,然后单击左侧的Install进行安装就可以了。安装成功后,IntelliJIDEAUltimate将会提示你进行重启。重启之后,验证是否......
  • 利用matlab的guide制作一个凯撒密码加解密演示界面
    第一步:在命令行窗口输入guide,回车选择新建gui如图所示,两个粉的是可编辑文本,一个按钮,三个写着字和一个白色的框是静态文本先把我们需要的这些东西都拉出来,数量记得到位,布局自己调粉色什么怎么调就自己探索一下,一般拉出来是白色双击其中一个静态文本,会弹出来一个对话框,......