2015년 7월 3일 금요일

Qt 시작하기2 with Visual studio and Opencv

 개발 환경 : 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 // QTTEST5_H

  • 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를 한 후 다시 빌드해야한다.

    댓글 없음:

    댓글 쓰기