Отображение 3D-изображения в VTK (.mhd, .raw)

У меня есть простой файл, который должен отображать медицинское изображение в формате .raw, читая его заголовок из файла .mhd с помощью MetaImageReader.
Я не совсем знаком с VTK, поэтому я попробовал два разных фрагмента кода (на самом деле это примеры с vtk и с сайта kitware). Никто из них не работал. Поскольку я новичок в VTK, я не уверен, что это правильный способ отображения 3D-изображения, так как мой файл .mhd сообщает мне, что изображение имеет 3 измерения:

void render1() {
// read input image
vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<vtkMetaImageReader>::New();
reader->SetFileName("header.mhd");
reader->Update();

vtkSmartPointer<vtkImageViewer2> viewer = vtkSmartPointer<vtkImageViewer2>::New();
viewer->SetInputConnection(reader->GetOutputPort());

// render window
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();

viewer->SetupInteractor(renderWindowInteractor);
viewer->GetRenderer()->ResetCamera();

renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
}

Если я изменю читателя на например JPEGReader и загрузить файл JPEG, изображение будет отображаться.
Другой пример, который я пробовал, следующий:

void render2() {
// read input image
vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<vtkMetaImageReader>::New();
reader->SetFileName("header.mhd");
reader->Update();

// Visualize
vtkSmartPointer<vtkImageActor> actor = vtkSmartPointer<vtkImageActor>::New();
actor->GetMapper()->SetInputConnection(reader->GetOutputPort());

vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);
renderer->ResetCamera();

vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);

vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
vtkSmartPointer<vtkInteractorStyleImage> style = vtkSmartPointer<vtkInteractorStyleImage>::New();

renderWindowInteractor->SetInteractorStyle(style);
renderWindowInteractor->SetRenderWindow(renderWindow);
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
}

Я не получаю никакой ошибки. Появляется только окно с черным фоном. Когда я щелкаю в окне и перемещаю мышь, квадрат в середине окна появляется в оттенках серого от черного до белого, в зависимости от того, как далеко я перемещаю мышь.

Мне кажется, что я совершил одну простую ошибку, но так как я использую пример кода от самой компании по производству комплектующих, я застрял здесь.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector