2016-11-02 6 views
1

3D 구조의 DICOM 파일을 가지고 있는데, 구조 내에서 일부 변경 작업을 수행하기 위해 ImageJ를 사용하여 3D 구조를 stl 파일로 변환 한 다음 vtkreadstl을 사용하여 vtkreadstl에 데시 메이션을 사용하여 저장합니다. algorithme 일부 정점과 삼각형을 삭제하여 구조를 줄일 수 있습니다. 이제는 추가 정점을 추가하여 역을 수행하고 싶습니다. 알고리즘을 사용하면 그렇게 할 수 있습니까? 감사합니다.새로운 정점을 3D 구조 안에 추가

답변

0

데시 메이션의 반대는 테셀레이션 또는 세분화입니다. 테셀레이션은 사용하기로 결정한 알고리즘을 기반으로 더 많은 지오메트리를 추가하는 것입니다. 세분화 된 지점은 서페이스를 더욱 부드럽게 만듭니다.

어떤 것을 사용 하시겠습니까? 추가 정점을 추가 할 때 목표가 정확히 무엇인지에 따라 다릅니다.

vtk를 보면, 모델을 테셀링하려는 경우 도움이 될 수있는 vtkTessellatorFiltervtkSimpleCellTessellator이 있습니다. 그렇지 않으면 추가 지오메트리를 추가하여 더 부드러운 서페이스를 얻는 것이 목표 인 경우 상당히 다른 하위 분할 알고리즘이 있습니다. VTK는이 같이 보인다 : vtkLinearSubdivisionFilter, vtkButterflySubdivisionFilter, vtkLoopSubdivisionFilter, vtkDataSetSurfaceFilter

+0

이 코드를 시도하지만 출력에 0 삼각형이 , 내가 어떻게 테설 레이터를 사용하는 예를 찾을 수 없습니다 :'vtkTessellatorFilter 테슬라 = 새로운 vtkTessellatorFilter을(); tesla.SetInputData (input); tesla.Update();'입력 한 내용이 ** vtkpolydata ** –

+0

@Ouznour 더 많은 지오메트리를 추가하려는 목표는 무엇입니까? 표면을 더 부드럽게 만드는 것입니까? 또는 표면에 텍스처를 추가하는 것과 같은 작업을 원하십니까? subdivision은 표면을보다 부드럽게 만들기위한 것으로, tesselation을 사용하여 목표는 독자적인 알고리즘을 구현하는 것입니다. 즉, 더 정확하게 도형을 추가하는 것이 무엇인지 알아야하며 알고리즘을 구현하는 방법을 알아야합니다. 당신에게 원하는 표면을 제공하십시오 – iedoc

+0

내 목표는 표면에 더 많은 지오메트리를 추가하는 것뿐 아니라 3D 구조 내에서 vtkTessellatorFilter의 문서가 명확하지 않습니다 –

관련 문제