2013-05-03 209 views
1

我是VTK ITK的初學者,我正在嘗試閱讀與ITK DICOM系列和VTK顯示,但我有圖片顛倒,我試着讀一個單一的圖像(JPG)與ITK和視覺用戶與VTK是同樣的問題,所以我有了處理photoshop上的圖像的想法,即我應用到原始圖像旋轉(工作區域的垂直對稱),我做了閱讀與ITK和VTK顯示,圖像顯示在正確的方向,事實上ITK保持圖像的方向,但問題是在VTK,它是顯示圖像顛倒,我搜索整個互聯網我沒有發現一個解決方案或方法或甚至沒有想法,我在許多論壇遇到同樣的問題,但沒有迴應,我指望你的幫助,我不能應用任何圖像處理來找到解決這個問題的方法。如何糾正與ITK VTK圖像的方向

請幫忙!預先感謝您

+0

爲什麼不只是使用VTK而不是ITK讀取? vtkJPEGReader將做的伎倆。如果你使用ITK並仍然存在這個問題,你可以通過迭代遍歷從0,0,0開始的每個體素值並將值設置爲i-1,j-1,0來顛倒圖像。您可以通過在顯示之前將圖像轉換爲vtkImageData來完成此操作。 – DashControl 2013-05-03 14:14:48

+0

我必須閱讀ITK的DICOM系列,因爲我需要分割技術,並且我使用vtk進行可視化。請你可以用一個例子來解釋我。謝謝 – Clara 2013-05-03 21:03:51

回答

2

理想情況下,您應該在VTK中重新定位您的相機,以便它適合醫學圖像可視化。 (VTK中的默認攝像機使用計算機圖形慣例)。

如果你想快速的黑客,你可以複製粘貼以下代碼在ITK:

FlipFilterType::Pointer flipperImage = FlipFilterType::New(); 
bool flipAxes[3] = { false, true, false }; 
flipperImage = FlipFilterType::New(); 
flipperImage->SetFlipAxes(flipAxes); 
flipperImage->SetInput(image); 
flipperImage->Update(); 
+0

感謝您的幫助,這裏是我的代碼在這個鏈接:http://stackoverflow.com/questions/16109610/how-to-connect- ITK到VTK-與-C?RQ = 1。請在哪裏添加此代碼?謝謝 – Clara 2013-05-06 20:30:43

+0

非常感謝你,我用這種方法,它工作得很好:) – Clara 2013-05-06 22:45:42

+0

如果它已經工作,請確認並關閉該問題。 – nav 2013-05-08 17:43:09

0

這是我如何做到這一點的一個例子。我不確定你正在使用什麼課程,所以我不能具體。

vtkSmartPointer<vtkImageData> result = vtkSmartPointer<vtkIMageData>::New(); 
    result->DeepCopy(YourImage); //DeepCopy your image to result 
    rImage->Update(); 

    double val; 
    int i = 0; 

    for(vtkIdType f = result->GetNumberOfPoints()-1; f > -1; f--) 
    { 
     val = YourImage->GetPointData()->GetScalars()->GetTuple1(f); 
     result->GetPointData()->GetScalars->SetTuple1(i,val); 
     i++; 
    } 



result->Update(); 
//Now Visualize your image 
+0

你好,謝謝你的回答,好吧,我使用vtkImageViewer2.h,這裏是我的代碼在這個鏈接:http://stackoverflow.com/questions/16109610/how- to-connect-itk-to-vtk-with-c?rq = 1 – Clara 2013-05-06 20:00:48

+0

我很抱歉我的問題,我是ITK VTK的初學者,是否可以將vtkImageViewer2轉換爲vtkImageData? – Clara 2013-05-06 20:21:42

+0

我相信如此。像這樣:'vtkImageData * ImageData = YourVtkImageViewerObject-> GetInput();' – DashControl 2013-05-06 20:45:36

1

我用一個快速的方法來設置方向:

imageActor->SetOrientation(180,0,0);

無需添加過濾器。