qt+opencv图像在控件上的显示 槽和信号的定义.
2017-11-15 17:14
567 查看
1.opencv Mat图像数据在qt的label控件上显示
cv::Mat img; img = cv::imread("./1115.jpg"); cv::cvtColor(img, img, CV_BGR2RGB); //因为Mat的图像数据是BGR,所以要先将img转化位RGB QImage qImg = QImage((const unsigned char*)(img.data), img.cols, img.rows, img.cols * img.channels(), QImage::Format_RGB888); //图像数据转化位QImage类型 ui->label->clear(); //清空控件label ui->label->setPixmap(QPixmap::fromImage(qImg)); //label赋值 ui->label->show(); //显示图像
2.重写void paintEvent(QPaintEvent *e)这个方法
paintEvent这个类是QT自带的,可以根据自己的需求重写这个类.paintEvent可以理解成一个实时刷新的方法,可以用来视频的显示.
VideoCapture capture(0); //打开电脑自带摄像头 void MainWindow::paintEvent(QPaintEvent *e) //图像在label上实时显示 { cv::Mat img; capture>>img; cv::cvtColor(img, img, CV_BGR2RGB); //因为Mat的图像数据是BGR,所以要先将img转化位RGB QImage qImg = QImage((const unsigned char*)(img.data), img.cols, img.rows, img.cols * img.channels(), QImage::Format_RGB888); //图像数据转化位QImage类型 ui->label->clear(); //清空控件label ui->label->setPixmap(QPixmap::fromImage(qImg)); //label赋值 ui->label->show(); }
3.qt每个控件都可以有多个信号,多个槽
信号可以理解为点击按钮这个动作或点击鼠标等类似情况.槽就是对应的信号执行的方法,比如点击按钮打开摄像头,点击按钮就是信号,打开摄像头就是槽.
//定义一个pushButton按钮下面就是对应的槽 void MainWindow::on_pushButton_clicked() { //编写需求代码 }
相关文章推荐
- 一个显示 OpenCV Mat 图像的自定义 Qt 控件
- opencv+Qt显示图像
- 将opencv中的图像显示在VC的控件中
- Qt中用OpenCV2.4读取并把图像显示在QLabel中 (Ubuntu12.04)
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- Qt中用QLabel显示OpenCV中Mat图像数据出现扭曲现象的解决
- 在MFC控件中显示opencv库中的图像或者视频用的CvvImage
- MFC/QT 在控件上实时显示图像
- Qt对话框显示opencv读取的图像
- Qt与OpenCV结合:图像显示
- 在MFC图像控件上显示opencv Mat格式图片
- OpenCV图像MAT格式转换为QT中QImage并显示
- MFC中picture控件中利用OpenCV显示图像
- Qt中显示opencv的图像
- Qt下图像自定义显示控件
- OpenCV 利用MFC的Picture控件显示和处理图像
- 【Qt】在Qt上显示OpenCV图像