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);
마우스 인터럽트를 추가합니다.마우스 조작이 발생하면 프로그램을 중단합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
링크 ux 의 vi 명령텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.