2015/05/07

Hello OpenCV Viz

이전 포스팅을 통해 생성했던 OpenCV 의 3D Visualization module 을 테스트 해 보았다.
2015/05/07 - [Dev Story/Tips] - OpenCV viz 빌드하기



필요한 것으로는 VTK 헤더파일과 VTK와 함께 빌드후 생성 된 lib 파일과 dll 파일 그리고 OpenCV 헤더파일이 필요하다. OpenCV 를 빌드할 때 INSTALL 프로젝트를 빌드했다면 install 경로에 모든 헤더파일이 있지만 그렇지 않다면 module\viz\include 폴더에 있는 viz 관련 헤더가 필요하다.


아직은 Viz에 대한 자세한 사항을 몰라 sample과 reference 문서를 보고 간단하게 테스트 코드를 만들어 보았다.
아래 코드는 테스트를 위해 사용된 코드이다.

// Header
// OpenCV
#include "opencv2/opencv.hpp"
#include "opencv2/viz.hpp"
#include "opencv2/viz/widget_accessor.hpp""

#include "vtkPoints.h"
#include "vtkTriangle.h"
#include "vtkCellArray.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkIdList.h"
#include "vtkActor.h"
#include "vtkProp.h"

#pragma comment(lib, "../OpenCV_VTK_VS2013/x86/lib/Release/opencv_core300.lib")
#pragma comment(lib, "../OpenCV_VTK_VS2013/x86/lib/Release/opencv_imgproc300.lib")
#pragma comment(lib, "../OpenCV_VTK_VS2013/x86/lib/Release/opencv_highgui300.lib")
#pragma comment(lib, "../OpenCV_VTK_VS2013/x86/lib/Release/opencv_viz300.lib")

// Source
/// Create a window
cv::viz::Viz3d vizHello("Hello Viz");

vizHello.setWindowSize(cv::Size(600, 480));

// Coordinate
vizHello.showWidget("Coordinate", cv::viz::WCoordinateSystem(1));

// Text 3D
cv::viz::WText3D wdg3DText("Hello OpenCV Viz Text3D"
, cv::Point3d(0.5, 0.5, 0.5), 0.2
, false, cv::viz::Color::green());
vizHello.showWidget("Text 3D", wdg3DText);

// Text 2D
cv::Size szWnd = vizHello.getWindowSize();
cv::viz::WText wdg2DText("Hello OpenCV Viz Text2D"
, cv::Point(szWnd.width / 4, szWnd.height / 4)
, 20, cv::viz::Color::yellow());
vizHello.showWidget("Text 2D", wdg2DText);
vizHello.spin();



아래 이미지는 위의 코드를 실행하면 보여지는 화면 이다.



프로그램이 정상적으로 실행되는 것으로 볼 때 OpenCV에 VTK 라이브러리를 포함 한 빌드에는 문제가 없어 보인다. 화면 출력은 3D는 자체 좌표계로 운영되고 마우스 컨트롤로 변경할 수 있으며 2D는 화면의 좌 하단을 원점으로 출력 된다.


Viz 운영에 있어 중요한 객체는 두 가진 인데 그려지는 윈도우를 담당하는 Viz3D 와 그려지는 내용을 담당하는 Widget 이다. Viz3D의 경우 Widget을 화면에 출력해 주는 역할을 한다

Original Post : http://neodreamer-dev.tistory.com/740

No comments :

Post a Comment