VS2010+QT5.1+opencv2.4.5画像インタフェースの最初のプログラム


QTは最近5.1.0バージョンが新しく出て、最近QTでインタフェースを書くので、新しいQTを再ダウンロードして、以前のQt 4を置き換えました.8.4.
         VS2010+opencv2.4.5+Qt4.8.4の配置過程は、博文OpenCV 2を参照してください.4.5 + QT4.8.4+VS 2010環境構築アドレスhttp://blog.csdn.net/skeeee/article/details/8802375
ここではQT 5のみを紹介する.1インストール.
一、QTバージョンのダウンロード
QTインストールパッケージダウンロードQt 5.1.0 for Windows 32-bit(VS 2010,505 MB)(Info)
QT VS 2010プラグインVisual Studio Add-in 1.2.2 for Qt 5(does not work with the Express edition)
二、QT 5.1インストール
2.1ソフトウェアのインストール
QT VS Addinプラグインをインストールして、およびQTインストールパッケージをインストールして、注意しなければならないのはインストール経路が中国語があることができないので、私のQTインストールパッケージは直接d:/QTを選んで、ずっとNextを節約すればいいです.
2.2環境変数の構成
私のコンピュータ-》の右ボタンの属性-》の高級-》の環境の変数、PATHの中でプラスします;D:\Qt\Qt5.1.0\5.1.0\msvc2010\bin
図:
              VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第1张图片
その後、VS 2010でも環境変数、QT 5-』属性-』Addを設定し、バージョン名はQT 5である.1.0、パス:D:QtQt 5.1.0\5.1.0\msvc2010
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第2张图片
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第3张图片
三、第一のグラフィックインターフェースプログラム
3.1新規QT 5.1工程
構成が完了したら、VS 2010で新しいプロジェクトを作成し、QT 5 Projects-』QTアプリケーションを選択します.プロジェクト名はQt 5 testです.
             VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第4张图片
ワンクリックOk、直接Finish、工事は成功しました.
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第5张图片
3.2 QTデザイナー設計インターフェース及びリンク情報/スロットを使用する
Qt 5 testをダブルクリックします.uiは、Qtデザイナーインタフェースを弾き出し、2つのボタンをドラッグしてインタフェースに追加し、ボタンの名前をダブルクリックして変更し、ボタンのサイズを変更します.
次に、情報/スロットをリンクし、編集情報/スロットボタン(下図)、左ボタンOpen Imageボタンを選択し、ドラッグすると、リンク信号/スロットの線をドラッグしてマウスを離すと、編集出口(下図)がポップアップします.編集ボタンをクリックし、スロットにボタンで押した応答関数、OpenImageClicked()およびProcessClicked()関数を追加し、確定したらclickをクリックし、OpenImageClicked()をボタンOpenImageの応答関数として選択し、同じくProcessの応答関数をProcessClicked()に設定する.設計したインタフェースは保存することを覚えていて、VS 2010は実行してQt Projectに対して自動的に保存することはできなくて、ただ前に保存したインタフェースだけをロードすることができます
        VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第6张图片
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第7张图片
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第8张图片
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第9张图片
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第10张图片
3.3応答関数プログラムの作成
QT 5 testクラスでの2つのボタン応答関数の宣言と定義OpenImageClicked()とProcessClicked()
Qt 5 testをダブルクリックします.h,クラスに2つの応答関数の宣言を追加し,ヘッダファイルを追加し,プライベート変数cv::Matimage;
       
#ifndef QT5TEST_H
#define QT5TEST_H

#include <QtWidgets/QMainWindow>
#include <Qlabel>    
#include "ui_qt5test.h"

#include <opencv/cv.h>
#include <opencv/highgui.h>

class Qt5test : public QMainWindow
{
	Q_OBJECT

public:
	Qt5test(QWidget *parent = 0);
	~Qt5test();

private:
	Ui::Qt5testClass ui;
	cv::Mat image;   //       image
	cv::Mat result;//       result

private slots:    //      
	void OpenImageClicked();
	void ProcessClicked();
};

#endif // QT5TEST_H

Qt 5 testをダブルクリックします.cpp,応答関数の定義
#include "qt5test.h"

Qt5test::Qt5test(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
}

Qt5test::~Qt5test()
{

}

void Qt5test::OpenImageClicked()
{
	image = cv::imread("img.jpg");//    
	cv::cvtColor(image, image, CV_RGB2RGBA);//   QT   ,     QImage  , RGBA     RGB
	QImage img = QImage((const unsigned char*)(image.data), 
		image.cols, image.rows, QImage::Format_RGB32); 
	QLabel *label = new QLabel(this);
	label->move(130,50);
	label->setPixmap(QPixmap::fromImage(img));  
	label->resize(label->pixmap()->size());
	label->show();
}

void Qt5test::ProcessClicked()
{
	cv::flip(image,result,1);//       
	QImage img = QImage((const unsigned char*)(result.data), 
		result.cols, result.rows, QImage::Format_RGB32);
	QLabel *label = new QLabel(this);
	label->move(380,50);
	label->setPixmap(QPixmap::fromImage(img));  
	label->resize(label->pixmap()->size());
	label->show();
}

3.4プログラムの実行結果は以下の通りである.
VS2010+QT5.1+opencv2.4.5图像界面第一个程序_第11张图片
四、参考資料
Qt開発者コミュニティhttp://qt.csdn.net/index.aspx
Qt Project公式サイトhttp://qt-project.org/
プログラムダウンロードVS 2010+QT 5.1.0+opencvテストプログラム