我是VTK ITK的初学者,我正在尝试用ITK阅读DICOM系列并使用VTK进行显示,但我将图片颠倒过来,我试图用ITK读取单个图像(JPG),使用VTK读取视觉用户同样的问题,所以我有想法在photoshop上处理图像,即我应用于原始图像旋转(工作区域的垂直对称),我用ITK读取并用VTK显示,图像显示在正确的方向,事实上ITK保持图像的方向,但问题是在VTK,它是颠倒显示图像,我在互联网上搜索我没有找到解决方案或方法甚至没有想法,我在很多论坛遇到了同样的问题,但是没有回复,我依靠你的帮助,我无法应用任何图像处理来找到解决这个问题的方法。
请帮忙!提前谢谢你
答案 0 :(得分: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();
答案 1 :(得分:2)
我使用快速方式设置方向:
imageActor->SetOrientation(180,0,0);
无需添加过滤器。
答案 2 :(得分: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