Qt-在QLabel上显示Mat数据

这篇具有很好参考价值的文章主要介绍了Qt-在QLabel上显示Mat数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 写在前面

        用于记录一下,在Qt上显示Mat的数据,记录代码如下;文章来源地址https://www.toymoban.com/news/detail-844630.html

//QLabel中显示处理结果
void MainWindow::matToLabelShow(QLabel *label, Mat &mat)
{
    cv::Mat Rgb;
    QImage Img;
    if (mat.channels() == 3)//RGB Img
    {
        cv::cvtColor(mat, Rgb,COLOR_BGR2RGB);
        Img = QImage((const uchar*)(Rgb.data), Rgb.cols, Rgb.rows, Rgb.cols * Rgb.channels(), QImage::Format_RGB888);
    }
    else//Gray Img
    {
        Img = QImage((const uchar*)(mat.data), mat.cols, mat.rows, mat.cols * mat.channels(), QImage::Format_Indexed8);
    }

    //自适应显示
    int ori_width = Img.size().width();
    int ori_height = Img.size().height();

    int m_width = label->size().width();
    int m_height = label->size().height();

    int pro;
    if(ori_width/m_width >= ori_height / m_height)
    {
        pro = ori_width / m_width;
    }
    else
    {
        pro = ori_height / m_height;
    }

    int scale_width = ori_width / pro;
    int scale_height = ori_height / pro;

     QImage *scale_image = new QImage();
     *scale_image = Img.scaled(scale_width,scale_height,Qt::KeepAspectRatio);
     //label->setScaledContents(true);//充满整个屏幕
     label->setAlignment(Qt::AlignCenter);
     label->setPixmap(QPixmap::fromImage(*scale_image));
}

到了这里,关于Qt-在QLabel上显示Mat数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt应用开发——QLabel的使用

            QLabel标签继承于QFrame,QFrame继承于QWidget,是Qt中最基础也是最常用的控件。         框架类QFrame介绍         QLabel不提供用户交互功能,标签的视觉外观可以通过多种方式进行配置,并且可以使用它为其他界面的标签,QLabel可以用来显示以下这些内容: 纯文本

    2024年02月17日
    浏览(33)
  • Qt信号和槽绑定实例,点击pushbutton按钮触发QLabel文本显示和关闭

    功能简介: 点击qt界面中的open按钮在界面中显示文本,同时按钮变为close按钮,再点击close按钮可以关闭显示文本,同时按钮变为open按钮,继续点击open按钮。。。。。。 关键内容: 1.创建一个qt工程 2.定义一个QPuschButton按钮实例和一个QLabel文本显示实例 3.设置按钮显示内容和

    2024年02月12日
    浏览(32)
  • 4. QT环境下使用OPenCV(视频或摄像头读取显示在QLabel控件上)

    1. 说明 在用opencv处理图像时,图像的来源大部分情况下是从视频中读取过来的,视频可以是本地保存的视频,也可以是本地摄像头或者网络摄像头实时拍摄的视频。 效果展示: opencv读取视频 2. 具体操作 关于视频的读取,实际上也是从视频中将每一帧图像加载后,显示到Q

    2024年02月04日
    浏览(37)
  • QT使用QLabel控件显示图片,报错:QPixmap::scaled: Pixmap is a null pixmap

    Label 和 pushButton 两个控件 实现点击 按钮 标签显示图片的功能 槽函数如下 Widget.cpp 同级目录img中有图片 1.png 但是点击后报错: QPixmap::scaled: Pixmap is a null pixmap 在网上看了很多帖子: 经过多方面尝试最后发现是图片格式的问题 (真的是浪费了好长时间,因为当时电脑里两张图

    2024年02月11日
    浏览(35)
  • C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据

    对上两篇篇的工作C++ Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个 保存按钮,用于保存成绩数据。 1)在ui界面添加一个按钮         将其命名为saveBtn。

    2024年02月19日
    浏览(25)
  • Qt6.2教程——5.QT常用控件QLabel

    QLabel是Qt库中一个非常基础且重要的类。它主要用于在图形用户界面(GUI)中展示文本或图片。最常见的用法就是在窗口上显示一段文字或者标签,比如“用户名”,“密码”等等。QLabel继承自QFrame,因此它也可以具有框架。它能处理富文本格式,这意味着您可以改变部分文本的

    2024年02月10日
    浏览(30)
  • Qt中在QLabel上画点,重写QLabel类

    QT中label进行绘图 1.首先新建一个类,让这个类继承QLabel 2.在类中对鼠标点击事件及绘图事件进行重写 3.然后在UI框架下添加label控件, 4.右键label控件,添加重写的类,将其提升为刚刚写好的类 mylabel.h mylabel.cpp

    2024年02月13日
    浏览(33)
  • Qt 之 QWidget QLabel

    Qt Creator 以工程项目 的方式对源码进行管理一个Qt Creator工程包含不同类型的文件 。 .pro 项目描述文件 .pro.user用户配置描述文件- .h头文件 .cpp源文件 .ui界面描述文件 资源文件(图片,音频,等) pro 项目描述文件的基本组成 #一注释起始符 : 以“#”开始,到这一行结束。快捷

    2024年02月13日
    浏览(34)
  • Qt - QLabel设置字体颜色

    ** ** • 第一种,使用setPalette()方法如下: • 第二种,使用样式表如下: • 第三种,使用QStyle,在Qt Demo中有一个很好的讲解QStyle的例子,可以参考学习。 • 第四种,使用一些简单的HTML格式:

    2024年02月15日
    浏览(51)
  • Qt中QLabel怎么用

    这篇文章给大家分享的是有关Qt中QLabel怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 主要成员函数: 1.void setText(QString); //设置label框内的文本. 2.void hide(); //隐藏label框. 3.void setBuddy(QWidget*); //把另一个部件设为label框的伙伴,方便快捷

    2024年02月17日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包