2011-09-28 2 views
1

파이썬에서 메쉬 개체를 만들려고합니다. 다음 web page에서 설치되는 Python 바인딩을 사용하고 있습니다. C++ 코드에 관한 한 다음과 같이 처리 할 수 ​​있습니다.파이썬 바인딩을 사용하여 ITK에서 메쉬 객체를 만드는 방법은 무엇입니까?

 MeshType::Pointer mesh = MeshType::New(); 

ITK를 사용하는 것은 매우 새로운 기능입니다. 그것을 만드는 방법을 모릅니다. C++ 문서의 Mesh 생성자에서는 TPixelType이라는 필수 인수를 말합니다. 그것도 찾을 수 없습니다.

누구나 내가 이걸 도와 주시겠습니까?

감사

답변

2

내가 당신이라면 나는 ITK 4.0과 함께 제공되는 파이썬 바인딩을 살펴 것입니다. cmake에서 WRAP_ITK_PYTHON 옵션을 설정하여 액세스 권한을 얻을 수 있습니다.

되면, 당신은 상자 밖으로 2 개 메쉬 유형을 만들 수 있습니다 켜진 파이썬 바인딩 ITK 컴파일 다음과 같이

import itk 
meshType2D = itk.Mesh.D2Q.New() 
meshType3D = itk.Mesh.D3Q.New() 

는 다른 방법으로 명시 적으로 클래스를 인스턴스화 할 수 있습니다 :

import itk 
meshType2D = itk.Mesh[itk.D, 2, itk.QuadEdgeMeshTraits.D2BBFF] 
meshType3D = itk.Mesh[itk.D, 3, itk.QuadEdgeMeshTraits.D3BBFF] 

이렇게하면 기본 메쉬 특성을 가진 double 유형 픽셀 값의 2 차원 및 3 차원 메쉬가 제공됩니다. ITK의 픽셀 유형에 이르기까지 기본적인 C++ 변수 유형 인 double, float, unsigned int 등이 있습니다. 이러한 기본 유형은 파이썬으로 싸여 있으며 itk.D, itk.F라는 ITK 네임 스페이스에서 찾을 수 있습니다. , itk.UI 등

+0

답장을 보내 주셔서 감사합니다. ITK 3,14 있습니다. 그것은'itk.Mesh.D2D.New()'와는 작동하지만 itk.Mesh.D2D.New()에서는 작동하지 않습니다. 메쉬의 명백한 생성에 관해서는, 예를 들어'itk.Mesh [itk.F, 3]'을 쓰면 다음과 같은 에러가 발생합니다. itkTemplate : itk :: Mesh 클래스에 대한 템플릿이 없습니다 (, 3). ITk를위한 파이썬 바인딩을 탐색하는 가장 쉬운 방법을 말씀해 주시겠습니까? 고마워. – Shan

+0

또한 웹 사이트에서 최신 공식 릴리스는 3.2입니다. ITK 4.0을 찾을 수 없습니다. 감사합니다. – Shan

+1

Hey Shan Mesh 및 Image와 같은 모든 ITK 템플릿 유형에 대해 이미 파이썬으로 래핑 된 모든 가능한 치수 및 픽셀 유형의 일부만이 있습니다. 메쉬의 경우에는 상자 밖으로 두 줄로 감쌀 수 있다고 생각합니다. 그래서 itk.Mesh [itk.F, 3]에 대한 당신의 전화는 실패합니다. 3.x 이상의 ITK v 4.x를 얻으려면 git 저장소로 가야합니다. github에서 ITK를 검색하거나 ITK 웹 사이트의 링크를 통해 찾을 수 있습니다. – ncRubert