首页 > 其他分享 >cv::Mat转QImage导致图像色彩异常

cv::Mat转QImage导致图像色彩异常

时间:2024-05-07 09:03:42浏览次数:21  
标签:Mat qtImage cols resizeMat cv QImage

问题:

 1 QPixmap MainWindow::opencvToQImage(const QString &str)
 2 {
 3     cv::Mat cvImage = cv::imread(str.toStdString(),cv::IMREAD_REDUCED_COLOR_2);
 4     cv::Mat resizeMat;
 5      cv::resize(cvImage, resizeMat, cv::Size(ui->label->width(),ui->label->height()), 0, 0, cv::INTER_AREA);
 6     QImage qtImage(resizeMat.data, resizeMat.cols, resizeMat.rows, resizeMat.step, QImage::Format_RGB888);
 7 resizeMat.rows, bytesPerLine, QImage::Format_RGB888);
 8 
 9     return QPixmap::fromImage(qtImage);
10 }

解决方法:

 1 QPixmap MainWindow::opencvToQImage(const QString &str)
 2 {
 3     cv::Mat cvImage = cv::imread(str.toStdString(),cv::IMREAD_REDUCED_COLOR_2);
 4     cv::Mat resizeMat;
 5      cv::resize(cvImage, resizeMat, cv::Size(ui->label->width(),ui->label->height()), 0, 0, cv::INTER_AREA);
 6     //QImage qtImage(resizeMat.data, resizeMat.cols, resizeMat.rows, resizeMat.step, QImage::Format_RGB888);
 7 //    qtImage.rgbSwapped();
 8 
 9     cv::cvtColor(resizeMat, resizeMat, cv::COLOR_BGR2RGB);
10 
11         // 计算 QImage 的步长
12         int bytesPerLine = resizeMat.cols * resizeMat.elemSize();
13 
14         // 创建 QImage
15         QImage qtImage((uchar*)resizeMat.data, resizeMat.cols, resizeMat.rows, bytesPerLine, QImage::Format_RGB888);
16 
17     return QPixmap::fromImage(qtImage);
18 }

 

标签:Mat,qtImage,cols,resizeMat,cv,QImage
From: https://www.cnblogs.com/WU20/p/18176449

相关文章

  • Nftables漏洞原理分析(CVE-2022-32250)
    前言在nftales中存在着集合(sets),用于存储唯一值的集合。sets 提供了高效地检查一个元素是否存在于集合中的机制,它可以用于各种网络过滤和转发规则。而CVE-2022-32250漏洞则是由于nftables在处理set时存在uaf的漏洞。环境搭建ubuntu20+QEMU-4.2.1+Linux-5.15.config文件......
  • 基于WOA优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览优化前:    优化后:   2.算法运行软件版本matlab2022a 3.算法理论概述       时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(ConvolutionalNeuralNetwork,C......
  • 基于Luckfox Pico的opencv使用UDP协议与ubuntu传输摄像头数据-小白进阶
    使用UDP传输opencv的mat数据并显示本教程适用于进阶的小白尝试先说一下背景吧,正在工作的我,突然间看到淘宝上有个很漂亮的价格还不错的linux小板子,遂买下。没错,工作太无聊以至于开始摸鱼学习~但奈何每天工作完回家就像躺着,所以板子到手都快半年了才开始研究实现了简陋的摄像头......
  • Pixelmator Pro 3.5.10 Flare (macOS Universal) - 专业图像编辑工具
    PixelmatorPro3.5.10Flare(macOSUniversal)-专业图像编辑工具Photoshop的卓越替代软件请访问原文链接:PixelmatorPro3.5.10Flare(macOSUniversal)-专业图像编辑工具,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgPixelmatorPro真正基于AppleMac......
  • m基于Yolov2深度学习网络的螺丝检测系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:         2.算法涉及理论知识概要        基于YOLOv2(YouOnlyLookOnceversion2)深度学习网络的螺丝检测系统,是一种高效的目标检测方法,它在计算机视觉领域被广泛应用,尤其适合于实时检测和定位图像中的......
  • 基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览woa优化前      woa优化后    2.算法运行软件版本matlab2022a 3.算法理论概述      时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(ConvolutionalNeur......
  • CF1630A And Matching 题解
    题目描述有\(n\)个数\(0,1,2,\cdots,n-1\)。你需要把他们两两分组,使得每组两个数按位与的结果之和\(=k\)。如果可能,请构造出一组可能的\(\fracn2\)个数对,否则输出-1。保证\(n\)是\(2\)的幂,\(k\len-1\)思路首先我们发现,\(n\)是二的幂,所以按照二进制的角度看,这......
  • Matlab安装教程(Linux)
    解压安装包在虚拟机中,文件直接通过拖拽文件的方式将安装包拉入虚拟机时,文件通常存放在/tmp/VMwareDnD中,因此需要将存放文件位置的文件转移到/home/<用户名>/<存放目录>中参考命令如下:mv/tmp/VMwareDnD/<文件存放目录>/*/home/<用户名>/<存放目录>之后在存放压缩包的目录中,......
  • [WUSTCTF2020]CV Maker
    [WUSTCTF2020]CVMaker打开环境注册了账号登陆,发现有上传头像的地方,尝试上传文件可以上传图片马GIF89a<scriptlanguage='php'>@eval($_POST['shell']);</script>BP里抓包改为php,得到上传成功路径http://1d2ee33c-dfe2-49ec-88c3-d3305f7bd2f3.node5.buuoj.cn:81/upload......
  • 在下载opencv等类似的包时,需要注意到的一个大问题!
    问题描述我尝试好多次去下载opencv-python的依赖包,发现一直说找不到这个东西问题解决查阅了好多资料,尝试了各种方法,发现还是同样的错误,然后突然看到一位博主说“是开了代理的缘故”;碰巧我也一直开着代理,关闭之后,再次使用清华源尝试下载opencv-python,发现没有再出现那个错误,并......