QT内label控件通过opencv显示图像
来源:互联网 发布:游戏王网络 编辑:程序博客网 时间:2024/06/12 00:09
1.对pro进行配置,使其能够理解opencv。
INCLUDEPATH+=d:\opencv249\include\opencv\ d:\opencv249\include\opencv2\ d:\opencv249\includeLIBS+=d:\opencv249\lib\libopencv_calib3d249.dll.a\ d:\opencv249\lib\libopencv_contrib249.dll.a\ d:\opencv249\lib\libopencv_core249.dll.a\ d:\opencv249\lib\libopencv_features2d249.dll.a\ d:\opencv249\lib\libopencv_flann249.dll.a\ d:\opencv249\lib\libopencv_gpu249.dll.a\ d:\opencv249\lib\libopencv_highgui249.dll.a\ d:\opencv249\lib\libopencv_imgproc249.dll.a\ d:\opencv249\lib\libopencv_legacy249.dll.a\ d:\opencv249\lib\libopencv_ml249.dll.a\ d:\opencv249\lib\libopencv_objdetect249.dll.a\ d:\opencv249\lib\libopencv_video249.dll.a
2.在*.ui内创建两个命令按钮,一个标签。其界面为:
3.配置其.h文件、.cpp文件。
.h文件:
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); cv::Mat image; QImage img;private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked();private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
.cpp文件
#include "mainwindow.h"#include "ui_mainwindow.h"#include "mainwindow.h"#include "ui_mainwindow.h"#include <QString>#include <QFileDialog>#include <QMessageBox>#include <opencv/cv.h>#include <QTextCodec>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_pushButton_clicked(){ QString filename = QFileDialog::getOpenFileName(this,tr("Open Image"),"",tr("Image File(*.bmp *.jpg *.jpeg *.png)")); QTextCodec *code = QTextCodec::codecForName("gb18030"); std::string name = code->fromUnicode(filename).data(); image = cv::imread(name); if(!image.data) { QMessageBox msgBox; msgBox.setText(tr("image data is null")); msgBox.exec(); } else { cv::cvtColor(image,image,CV_BGR2RGB); img = QImage((const unsigned char*)(image.data),image.cols,image.rows, image.cols*image.channels(), QImage::Format_RGB888); ui->label->clear(); ui->label->setPixmap(QPixmap::fromImage(img)); //ui->processPushButton->setEnabled(true); ui->label->resize(ui->label->pixmap()->size()); }}void MainWindow::on_pushButton_2_clicked(){ cv::flip(image,image,1); img = QImage((const unsigned char*)(image.data),image.cols,image.rows,image.cols*image.channels(), QImage::Format_RGB888); ui->label->setPixmap(QPixmap::fromImage(img));}
补充:
image.cols*image.channels()可以改为image.step.参考资料:
1.使用Qt显示openCV矩阵图片 http://blog.csdn.net/homechao/article/details/8989641
2. Qt中用QLabel显示OpenCV中Mat图像数据出现扭曲现象的解决 http://lovelittlebean.blog.163.com/blog/static/11658218620125208212189/
2 0
- QT内label控件通过opencv显示图像
- QT内label控件通过opencv显示图像
- Qt 中 Label 显示OpenCV 图像(IplImage*)
- Qt中通过控件平滑处理图像并且显示在Label标签中
- QT Label显示图像
- Qt的label显示OpenCV的Mat图像
- ubuntu下QT+OpenCV控制摄像头通过label 显示
- OpenCV在MFC图像控件内显示图像
- QT OpenCv 图像显示
- opencv+Qt显示图像
- QT opencv 读取显示图像
- Qt OpenCV 图像显示转换
- Qt中通过控件在Label标签中显示一张静态图片
- 【Qt】在Qt上显示OpenCV图像
- qt显示通过opencv显示摄像头
- Python内使用OpenCV显示图像
- 如何在QT的label上显示图像
- QT中使用opencv加载图片使用label显示
- ubuntu系统下如何禁用笔记本触摸板。
- sphinx 配置文件全解析
- asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化
- python 笔记---set
- asp.net mvc3 数据验证(三)—自定义数据注解
- QT内label控件通过opencv显示图像
- django models choices添加选项
- opencv学习--图像拼接之 Stitcher
- 安装python Matplotlib 库
- 如何清除任务栏中自定义通知里的图标
- KMP中next数组的理解
- davinci 学习大纲
- 关于电子元件的申请问题讨论
- C++中的string