Mesh data에서 ring의 개념 3D Graphics

너무 당연한 개념인데 한참을 고생했다.



그림으로 정리하면, 초록색 vertex에서.
빨간색으로 표시한 vertices = 1-ring neighborhood
파란색으로 표시한 vertices = 2-ring neighborhood

n-ring neighborhood가 뭔지 감이 오는가?
왜 'ring'이라는 단어를 사용했는지 그림을 보면 감이 오는가?

ring neighborgood에 관한 언급이 나와있는 논문

Bilateral Mesh Denoising

Shachar Fleishman, Iddo Drori, Daniel Cohen-Or

Noisy data may lead to unstable computation of the normals if the 1-ring neighborhood of a vertex is used to compute the normals. For extremely noisy data, the normal to a vertex is computed using the k-ring neighborhood of the vertex, where k is defined by the user.


그림출처 : http://www.ceremade.dauphine.fr/~peyre/geodesic_computations/


VTK(Visualization Toolkit) 설치 VTK

VTK(Visualization Toolkit) - 5.8.0
cmake 2.8

환경:

Windows 7 x32
Visual Studio 2010

참고:

http://vtkbook.tistory.com/2
http://majorss.egloos.com/288319
http://blog.naver.com/hchakim?Redirect=Log&logNo=30028210281

http://www.vtk.org/VTK/resources/software.html
http://www.cmake.org/

VTK source와 data를 다운로드

VTK폴더 생성
VTK폴더 내 VTKsource, VTKdata, bin, bin_cmake 생성
다운로드 받은 source를 VTKsource에, data를 VTKdata에 압축풀기

cmake 실행, advanced 체크!
Where is the source code: VTKsource폴더 설정
Where to build the binaries: bin_cmake폴더 설정

Configure(Visual Studio 10)(수십분 소요)

Cache Values 설정

BUILD_EXAMPLES(예제) 체크
BUILD_DOCUMENTATION(가이드) 체크
BUILD_SHARED_LIBS 체크

CMAKE_INSTALL_PREFIX : VTKsource폴더 설정
VTK_DATA_ROOT: VTKdata폴더 설정

Configure, Generate

Cmake 종료

bin_cmake의 VTK.sln 실행

Debug mode로 ALL_BUILD 프로젝트 빌드(수십분 소요)
INSTALL 프로젝트 빌드

bin/bin 폴더의 dll파일(34개)을 Windows/System32 폴더에 복사

Visual Studio 설정

Include Directories
/bin/include/vtk-5.8

Library Directories
/bin/lib/vtk-5.8

Linker - input(추가종속성 추가)

vtkRendering.lib
vtkGraphics.lib
vtkverdict.lib
vtkImaging.lib
vtkIO.lib
vtkFiltering.lib
vtkCommon.lib
vtkDICOMParser.lib
vtkNetCDF.lib
vtkmetaio.lib
comctl32.lib
wsock32.lib
vtksqlite.lib
vtkpng.lib
vtktiff.lib
vtkzlib.lib
vtkjpeg.lib
vtkexpat.lib
vtksys.lib
ws2_32.lib
vfw32.lib
vtkftgl.lib
vtkfreetype.lib
opengl32.lib
vtkVolumeRendering.lib
vtkWidgets.lib
vtkHybrid.lib


.stl file Load 후 curvature 정보 Color mapping 결과




error c101008a Debug error

error c101008a

opengl Test중 발생

라이브러리 파일의 변경, 기존 솔루션과 환경이 바뀌었을 경우.
/Debug 폴더 삭제 후 재빌드


cvCalibrateCamera2()에서 object point 주의 openCV

Photogrammetry로 패널의 Circle 좌표들을 받아놓고 좋다고 calibration하려니 오류 발생


planar target의 가정 때문에 object point의 z좌표는 모두 0이어야 한다.

따라서 위 xml 파일에서 z값을 모두 0으로 바꿔주면 끝
정밀도는아무리 z를 임의로 0으로 바꿧다고 해도
Learning OpenCV에서처럼 object_point를 기본단위로 해주는 것보다야 훨씬 낫지.

-수정

z를 0으로 바꾸면 상식적으로 부정확하지 않음?

double re_error_before = cvCalibrateCamera2(object_points, image_points, point_counts, cvGetSize(reference_image),
        intrinsic, distortion, NULL, NULL);
    cout<<re_error_before<<endl;

    double re_error = cvCalibrateCamera2(object_points_re, image_points, point_counts, cvGetSize(reference_image),
        intrinsic, distortion, NULL, NULL ,CV_CALIB_USE_INTRINSIC_GUESS);

처음엔 기본단위(0,1,0)... 으로 calibration
후에 CV_CALIB_USE_INTRINSIC_GUESS 플래그를 사용하여 calibration 다시 적용하여 정밀한 값 획득

#1 Diary

정리의 중요성을 느낀다.
내 책상에 널려있는 자료들. 내 컴퓨터에 저장되어 있는 지식들. 내가 작업했던 것들.
체계적으로 정리해서 언제든 Lookup할 수 있도록.

1 2 3 4 5