Qt+OpenCV 图像显示
2018-01-04 21:25
615 查看
Qt的图片数据类型QImage格式与OpenCV的Mat格式不一致,因此要实现转换,这通过下面的函数实现Mat到QImage的转换,打开文件对话框和显示图片的代码都在main函数中,下面是源代码:
// 设置图像的大小为QLabel的大小
【转自:】
http://blog.csdn.net/xiahouzuoxin/article/details/41692891
http://blog.csdn.net/yang6464158/article/details/38109415
#include <QApplication> #include <QWidget> #include <QImage> #include <QLabel> #include <QPushButton> #include <QHBoxLayout> #include <QVBoxLayout> #include <QFileDialog> #include <cv.h> #include <highgui.h> using namespace cv; static QImage Mat2QImage(Mat& image) { QImage img; if (image.channels()==3) { cvtColor(image, image, CV_BGR2RGB); img = QImage((const unsigned char *)(image.data), image.cols, image.rows, image.cols*image.channels(), QImage::Format_RGB888); } else if (image.channels()==1) { img = QImage((const unsigned char *)(image.data), image.cols, image.rows, image.cols*image.channels(), QImage::Format_ARGB32); } else { img = QImage((const unsigned char *)(image.data), image.cols, image.rows, image.cols*image.channels(), QImage::Format_RGB888); } return img; } int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget *wn = new QWidget; wn->setWindowTitle("disp image"); QString filename = QFileDialog::getOpenFileName(0, "Open File", "", "*.jpg *.png *.bmp", 0); if (filename.isNull()) { return -1; } Mat image = imread(filename.toAscii().data(), 1); QImage img = Mat2QImage(image); QLabel *label = new QLabel("", 0); label->setPixmap(QPixmap::fromImage(img)); QPushButton *bnt = new QPushButton("Quit"); QObject::connect(bnt, SIGNAL(clicked()), &app, SLOT(quit())); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(label); layout->addWidget(bnt); wn->setLayout(layout); wn->show(); return app.exec(); }
// 设置图像的大小为QLabel的大小
ui->labelimage->setPixmap(QPixmap::fromImage(myImage).scaled(ui->labelimage->size()));
【转自:】
http://blog.csdn.net/xiahouzuoxin/article/details/41692891
http://blog.csdn.net/yang6464158/article/details/38109415
相关文章推荐
- QT opencv 读取显示图像
- qt+opencv图像在控件上的显示 槽和信号的定义.
- 使用Qt+OpenCV+VideoInput 显示摄像头图像
- Qt中用QLabel显示OpenCV中Mat图像数据出现扭曲现象的解决
- OpenCV图像MAT格式转换为QT中QImage并显示
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)
- opencv+Qt显示图像
- Qt的label显示OpenCV的Mat图像
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)
- Qt中显示opencv的图像
- Qt中用OpenCV2.4读取并把图像显示在QLabel中 (Ubuntu12.04)
- Qt对话框显示opencv读取的图像
- 一个显示 OpenCV Mat 图像的自定义 Qt 控件
- QT OpenCv 图像显示
- 【Qt】在Qt上显示OpenCV图像
- QT显示OPENCV的图像
- Qt与OpenCV结合:图像显示
- Qt中显示opencv的图像
- qt学习笔记(3)Qt、opencv、vs2010本地读取图像、反转图像并显示