2011-09-28 78 views
1

我想在Python中創建一個Mesh對象。我正在使用從以下web page安裝的python綁定。至於C++代碼,我們可以這樣做,如下所示:如何使用Python綁定在ITK中創建網格對象?

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

即使使用ITK,我也很新。不知道如何創建它。在C++文檔的Mesh構造函數中,它說明了一個必要的參數,即TPixelType。無法找到。

有人可以幫我請這個。

感謝

回答

2

如果我是你,我會看看附帶ITK 4.0 Python綁定。您可以通過在cmake中打開選項WRAP_ITK_PYTHON來訪問它們。

一次,你編譯ITK與開啓你的python綁定可以創建2種目類型開箱:

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] 

這將爲您提供具有默認網格特徵的雙像素值的2維和3維網格。就ITK中的像素類型而言,它們相當於基本的C++變量類型:double,float,unsigned int等。這些基本類型包裝在Python中,可以在ITK名稱空間中找到:itk.D,itk.F ,itk.UI等

+0

非常感謝您的回答。我有3,14英鎊。它適用於'itk.Mesh.D2D.New()',但不適用於'itk.Mesh.D2D.New()'。至於明確的網格創建,如果我給例如'itk.Mesh [itk.F,3]'它會給出以下錯誤。 'itkTemplate:對於itk :: Mesh類'沒有模板(,3)。你能否告訴我最簡單的方法來探索ITk的Python綁定。非常感謝。 – Shan

+0

另外在網站上最新的正式版本是3.2。我找不到ITK 4.0。謝謝 – Shan

+1

Hey Shan, 對於所有不同的ITK模板類型(如Mesh和Image),Python中只包含所有可能的維和像素類型的有限子集。對於網格的情況,我認爲它可能只是雙重包裝。這就是爲什麼你對itk.Mesh [itk.F,3]的調用失敗。 要獲得超過3.x的ITK v 4.x,您需要轉到git存儲庫。您可以通過在github上搜索ITK或通過ITK網站上的鏈接找到它。 – ncRubert

相關問題