您的位置:首页 > 编程语言 > Qt开发

QT opencv 读取显示图像

2013-01-21 10:30 459 查看
#include "openimg_qt_cv.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
OpenImg_QT_CV w;
w.show();
return a.exec();
}


#ifndef OPENIMG_QT_CV_H
#define OPENIMG_QT_CV_H

#include <QtGui/QMainWindow>
#include "ui_openimg_qt_cv.h"

#include <QFileDialog>
#include <QLabel>
#include <QImage>

#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <QMessageBox>

using namespace std;
using namespace cv;

class OpenImg_QT_CV : public QMainWindow
{
Q_OBJECT

public:
OpenImg_QT_CV(QWidget *parent = 0, Qt::WFlags flags = 0);
~OpenImg_QT_CV();

private:
Ui::OpenImg_QT_CVClass ui;

public slots:
void on_OpenImage_clicked();

public:
IplImage* iplImg;
QImage QImg;

};

#endif // OPENIMG_QT_CV_H


#include "openimg_qt_cv.h"

OpenImg_QT_CV::OpenImg_QT_CV(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}

OpenImg_QT_CV::~OpenImg_QT_CV()
{

}

void OpenImg_QT_CV::on_OpenImage_clicked()
{
QFileDialog *fileDialog = new QFileDialog(this);
fileDialog->setWindowTitle(tr("Open Image"));
fileDialog->setDirectory(".");
fileDialog->setFilter(tr("Image Files(*.jpg *.bmp)"));
if(fileDialog->exec() == QDialog::Accepted)
{
QString path = fileDialog->selectedFiles()[0];

// 载入图像
Mat image = imread((const char *)path.toLocal8Bit());
Mat rgb;
cvtColor(image, rgb, CV_BGR2RGB);

QImage img = QImage((const unsigned char*)(rgb.data), rgb.cols, rgb.rows, QImage::Format_RGB888);
QImg = img;

QLabel *label = new QLabel(this);
label->move(0, 10);
label->setPixmap(QPixmap::fromImage(QImg));
label->resize(label->pixmap()->size());
label->show();
}
else
{
QMessageBox::information(NULL, tr("错误提示"), tr("没有选择文件!"));
}
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: