前言:
一般醫學圖像處理軟體,
所使用的是QT來用作界面UI設計。
ITK進行算法的操作,例如分割。
但是ITK不能用于顯示
是以就需要用VTK來顯示等。
本例子是一個簡單的整合
QT、VTK、ITK的一個Demo,
以供需要的人參考。
操作示例:
程式運作圖:
QT版本:
項目屬性頁:
附錄:
搭建好環境,程式可以運作。
這裡可以檢測下VTK和ITK是否配置好。
ITK測試程式:
#include "itkImage.h"
#include <iostream>
int main()
{
using ImageType = itk::Image< unsigned short, 3 >;
ImageType::Pointer image = ImageType::New();
std::cout << "ITK Hello World !" << std::endl;
return EXIT_SUCCESS;
}
VTK測試程式:
#include <vtkSphereSource.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
int main(int, char *[])
{
// Create a sphere
vtkSmartPointer<vtkSphereSource> sphereSource =
vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetCenter(0.0, 0.0, 0.0);
sphereSource->SetRadius(5.0);
//mapper
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(sphereSource->GetOutputPort());
//actor
vtkSmartPointer<vtkActor> actor =
vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
//renderer ,renderWindow, renderWindowInteractor.
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderer->AddActor(actor);
renderer->SetBackground(.3, .6, .3); // Background color green
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
可以自己測試下,自己的環境是否搭建好。
項目下載下傳
工程檔案下載下傳位址:https://download.csdn.net/download/mdxiaohu/11079236
連結:https://pan.baidu.com/s/1SGifpFxpXJ3fS0TF85tlIQ
提取碼:2rmm
複制這段内容後打開百度網盤手機App,操作更友善哦