[英]vtk convert 2d image to 3d (c++)
我已經讀了好幾天的doxygen和vtk wiki了,但我仍然不是100%地確定我要問的事情甚至可能。
我要完成的工作是以通用格式(即PNG)拍攝2d圖像並輸出3d模型(PNG-> Model / Mesh或2d-> 3d)。 一個很好的例子是,如果我在MS Paint中繪制一個多維數據集並將圖形另存為PNG,然后讀取圖像並生成該多維數據集的3D模型。 所以我的第一個問題是可能嗎? IT部門似乎應該采取某種方法來獲取圖像數據並將其轉換為多數據,然后從那里開始建立模型。 這就是我的想法(在C ++中):
int main(int argc, char *argv[])
{
//Verify correct number of input arguements
if(argc < 2)
{
fprintf(stderr, "Usage: %s Filename(.png)\n");
return EXIT_FAILURE;
}
std::string fileName = argv[1];
//Read file
vtkSmartPointer<vtkImageReader2Factory> readerFactory = vtkSmartPointer<vtkImageReader2Factory>::New();
vtkImageReader2 *imageReader = readerFactory->CreateImageReader2(inputFilename.c_str());
imageReader->Update();
//Get the image Data
vtkSmartPointer<vtkImageDataGeometryFilter> imageDataGeometryFilter =
vtkSmartPointer<vtkImageDataGeometryFilter>::New();
imageDataGeometryFilter-> SetInputConnection(imageReader-> GetOutputPort()); imageDataGeometryFilter->更新();
因此,如果第一個問題的答案是肯定的,那么這似乎還遙遙無期嗎?
我懷疑VTK是否提供了將通用2d形狀處理為3d模型的現成算法。 這基本上是一個反問題,意味着解決方案可能很多。 如果不應用對象形狀的某些約束或假設,這將很困難。
VTK可能會幫助您表達處理圖像的步驟(例如,提取顯着特征,例如角和線),以及在數據結構中提供更多選擇。 在我看來,您的代碼中顯示的想法僅顯示了從2d到3d的一般處理流程,但是細節(例如幾何過濾器)可能需要由您自己實現。
您要完成的實際任務是一個算法問題,例如,這項工作在CAD領域(將清晰的2d工程圖繪制到3d模型中)具有研究興趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.