개발 환경 : visual studio2013, qt5.4, opencv 3.0
1. 아래처럼 새프로젝트 만들기를 클릭하고 Qt5 Project를 생성한다.
일단 sample test임으로 선택사항은 변경없이 finish
2. 프로젝트 생성후 탐색기를 보면 아래와 같이 파일들이 생겨있다.
이중 *.ui 파일을 클릭 해보면
3. qt designer 가 실행되고 dialog가 보인다.
여기에 버튼하나와 label 하나를 추가했다.
4. 아래 그림처럼 시그널/슬롯 편집버튼을 클릭하여 버튼과 다이얼로그를 연결한다.
그후에 연결설정을 클릭하여 slot에 새로운 함수(여기서는 LoadImage)를 넣는다.
5. 헤더(여기서는 qttest5.h) 파일을 열어 함수를 선언한다.
수정부분은 검은색 표시부분
#ifndef QTTEST5_H
#define QTTEST5_H
#include <QtWidgets/QMainWindow>
#include "ui_qttest5.h"
class qtTest5 : public QMainWindow
{
Q_OBJECT
public:
qtTest5(QWidget *parent = 0);
~qtTest5();
private:
Ui::qtTest5Class ui;
private slots:
void LoadImage();
};
#endif
6. cpp(여기서는 qttest5.cpp) 파일을 열어 함수를 선언한다.
수정부분은 검은색 표시부분
#include "qttest5.h"
#include "opencv2/opencv.hpp"
using namespace cv;
qtTest5::qtTest5(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
qtTest5::~qtTest5()
{
}
void qtTest5::LoadImage()
{
VideoCapture cap(0);
Mat img;
cap >> img;
QImage qimg(img.data, img.cols, img.rows, QImage::Format_RGB888);
ui.label->setPixmap(QPixmap::fromImage(qimg));
}
컴파일 후 실행해보면 아래처럼, ui에 webcam으로 찍은 image가 display된다.
참고사항 : opencv 빌드시 with qt를 해주어야 한다.
현재(2015/07/09) 기준으로 opencv 3.0 을 다운로드 후 cmake로 열면 default는 with qt항목이 체크해제 되어있다. 체크 후 빌드가 필요하다. 그리고 qt 경로도 자동으로 찾지 못하였다. 아래 그림처럼 qt 경로들을 찾은후 입력 해주고 Generate를 한 후 다시 빌드해야한다.
댓글 없음:
댓글 쓰기