OpenCV + Qt Framework 장점

아래의 링크를 참조해 보시면 이와 같은 글이 있습니다.
  • OpenCV offers a somewhat fancier and more useful graphical user interface, than the default one by using the Qt framework. For a quick overview of what this has to offer look into the documentations highgui module, under the Qt New Functions section. Version 4.6 or later of the framework is required.
읽어 보시면 알겠지만, Qt framework를 사용하면 더 사용하기 편한 그래픽 유저 인터페이스를 제공한다고 합니다. 자세한 사랑은 highgui 모듈의 Qt New Functions 섹션을 참조하라고 하네요. 그래서 읽어 봤습니다.
읽어 보고 싶으신 분은 위의 링크에서 읽어 보세요.

간단한 설명

  1. CV_GUI_EXPANDED flag를 사용하면 추가적인 저장, 확대와 같은 기능이 이용가능합니다. 
  2. 마우스 휠 이벤트를 통해 사진 확대 및 축소가 가능하고 RGB 값을확인할 수 있습니다.
  3. CV_GUI_NORMAL flag로 일반적으로 사용하던 윈도우를 사용하 실 수 있습니다.
  4. 윈도우에 꼭 추가해야 했던 trackbar를 control panel에 추가 할 수 있습니다.
    • 버튼도 가능합니다.
  5. CV_GUI_EXPANDED flag에서 마우스 이벤트에 따라 마우스 좌표 및 RGB값을 statusbar에서 확인 할 수 있군요.
이 외의 추가기능이 좀 더 있지만 더 자세한 사항은 위의 링크에서 확인해 주시기 바랍니다.
아래의 코드는 Qt framework를 이용하는 OpenCV 예제입니다.
int main(int argc, char *argv[])
{
    int value = 50;
    int value2 = 0;
    namedWindow("main1",WINDOW_NORMAL);
    namedWindow("main2",WINDOW_AUTOSIZE | CV_GUI_NORMAL);
    createTrackbar( "track1", "main1", &value, 255,  NULL);
    String nameb1 = "button1";
    String nameb2 = "button2";
    createButton(nameb1,callbackButton,&nameb1,QT_CHECKBOX,1);
    createButton(nameb2,callbackButton,NULL,QT_CHECKBOX,0);
    createTrackbar( "track2", NULL, &value2, 255, NULL);
    createButton("button5",callbackButton1,NULL,QT_RADIOBOX,0);
    createButton("button6",callbackButton2,NULL,QT_RADIOBOX,1);
    setMouseCallback( "main2",on_mouse,NULL );
    Mat img1 = imread("files/flower.jpg");
    VideoCapture video;
    video.open("files/hockey.avi");
    Mat img2,img3;
    while( waitKey(33) != 27 )
    {
        img1.convertTo(img2,-1,1,value);
        video >> img3;
        imshow("main1",img2);
        imshow("main2",img3);
    }
    destroyAllWindows();
    return 0;
}

댓글

이 블로그의 인기 게시물

Linux에서 Atmega128(JMOD-128-1) 사용기

System의 안정도 판별

[OPENCV] pose estimation using solvePnP