ViSP 기반 이미지 디스플레이 프로그램 만들기

8803 단어 vi
그림을 읽고 윈도우즈 아래 창에 표시하는 프로그램을 만듭니다.
 1 #include <visp/vpDisplayD3D.h>

 2 #include <visp/vpDisplayGDI.h>

 3 #include <visp/vpDisplayGTK.h>

 4 #include <visp/vpDisplayX.h>

 5 #include <visp/vpDisplayOpenCV.h>

 6 #include <visp/vpImageIo.h>

 7 int main(int argc, char** argv)

 8 {

 9   if(argc != 2) {

10     printf( "Usage: %s <image name.[pgm,ppm,jpeg,png,tiff,bmp,ras,jp2]>
", argv[0] ); 11 return -1; 12 } 13 vpImage<vpRGBa> I; 14 try { 15 vpImageIo::read(I, argv[1]); 16 } 17 catch(...) { 18 std::cout << "Cannot read image \"" << argv[1] << "\"" << std::endl; 19 return -1; 20 } 21 try { 22 #if defined(VISP_HAVE_X11) 23 vpDisplayX d(I); 24 #elif defined(VISP_HAVE_OPENCV) 25 vpDisplayOpenCV d(I); 26 #elif defined(VISP_HAVE_GTK) 27 vpDisplayGTK d(I); 28 #elif defined(VISP_HAVE_GDI) 29 vpDisplayGDI d(I); 30 #elif defined(VISP_HAVE_D3D9) 31 vpDisplayD3d d(I); 32 #else 33 std::cout << "No image viewer is available..." << std::endl; 34 #endif 35 vpDisplay::setTitle(I, "My image"); 36 vpDisplay::display(I); 37 vpDisplay::flush(I); 38 std::cout << "A click to quit..." << std::endl; 39 vpDisplay::getClick(I); 40 } 41 catch(vpException e) { 42 std::cout << "Catch an exception: " << e << std::endl; 43 } 44 }

코드에 대한 설명은 다음과 같습니다.
#include <visp/vpDisplayD3D.h>

#include <visp/vpDisplayGDI.h>

#include <visp/vpDisplayGTK.h>

#include <visp/vpDisplayX.h>

#include <visp/vpDisplayOpenCV.h>

위의 헤더 파일은 모든 그림이 표시하는 헤더 파일을 포함합니다.두 번째는 윈도우즈 시스템 아래에 있는데 Direct 3D 또는 GDI(영상화 장치 인터페이스)를 요구한다.세 번째는 플랫폼 간 GTK 라이브러리가 필요합니다.네 번째는 클래스 Unix 시스템이며 libX11을 사용할 수 있어야 합니다.마지막으로 플랫폼 간 타사 라이브러리 OpenCV를 설치해야 합니다.
#include <visp/vpImageIo.h>

이 헤더 파일은 vpImageIo 클래스를 사용하여 하드디스크에서 다양한 형식의 그림을 읽을 수 있도록 합니다.
 vpImage<vpRGBa> I;

각 픽셀마다 RGBA로 인코딩된 컬러 이미지를 만듭니다.
try {

    vpImageIo::read(I, argv[1]);

  }

  catch(...) {

    std::cout << "Cannot read image \"" << argv[1] << "\"" << std::endl;

    return -1;

  }

하드디스크에서 파일을 읽다가 실패하면 알림을 출력합니다.
#if defined(VISP_HAVE_X11)

    vpDisplayX d(I);

#elif defined(VISP_HAVE_OPENCV)

    vpDisplayOpenCV d(I);

#elif defined(VISP_HAVE_GTK)

    vpDisplayGTK d(I);

#elif defined(VISP_HAVE_GDI)

    vpDisplayGDI d(I);

#elif defined(VISP_HAVE_D3D9)

    vpDisplayD3d d(I);

#else

    std::cout << "No image viewer is available..." << std::endl;

#endif

그림을 보여줍니다. 첫 번째 그림 보기 도구가 사용됩니다.그림은 한 번만 보여줄 수 있으니 주의해야 한다.
 vpDisplay::getClick(I);

마우스 인터럽트를 추가합니다.마우스 조작이 발생하면 프로그램을 중단합니다.

좋은 웹페이지 즐겨찾기