2

我是 VTK ITK 的初学者,我正在尝试使用 ITK 阅读 DICOM 系列并使用 VTK 显示,但我的图片颠倒了,我尝试使用 ITK 读取单个图像 (JPG),使用 VTK 读取视觉用户这是同样的问题,所以我有了在photoshop上处理图像的想法,即我应用到原始图像旋转(工作区域的垂直对称),我用ITK读取并用VTK显示,图像以正确的方向显示,事实上ITK保持图像的方向,但问题出在VTK,它是把图像倒置显示,我在网上搜索了整个互联网我没有找到解决方案或方法甚至没有想法,我遇到了在许多论坛中出现同样的问题但没有回复,我指望您的帮助,我无法应用任何图像处理来找到解决此问题的方法。

请帮忙!先感谢您

4

3 回答 3

4

理想情况下,您应该在 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();
于 2013-05-06T05:25:42.970 回答
2

我使用一种快速的方法来设置方向:

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

无需添加过滤器。

于 2014-05-14T17:17:52.957 回答
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
于 2013-05-03T22:28:33.997 回答