【004】 ITK 读取 CT Dicom 数据并使用 VTK 显示

【004】 ITK 读取 CT Dicom 数据并使用 VTK 显示



1.CMakeList.txt

cmake_minimum_required(VERSION 3.5)
project(Image2ReadImage LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(Image2ReadImage main.cpp)
target_link_libraries(Image2ReadImage ${ITK_LIBRARIES} ${VTK_LIBRARIES})

2.ITK 读取 CT dicom 文件并使用 VTK 显示代码实现

#include "itkImage.h"
#include "itkImageFileReader.h"

#include "vtkSmartPointer.h"
#include "itkImageToVTKImageFilter.h"
#include "vtkImageViewer2.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderWindow.h"
#include "vtkRenderer.h"

int main()
{
    using PixelType = unsigned int;
    using ImageType = itk::Image<PixelType,3>;
    using ImageReader = itk::ImageFileReader<ImageType>;
    ImageReader::Pointer reader = ImageReader::New();
    // 此处是我 CT Dicom 文件的路径,请根据实际情况修改
    reader->SetFileName("D:\\AnnjeffCode\\QtCreator\\ITK-Examples\\image000.dcm");
    reader->Update();
    ImageType::Pointer image = reader->GetOutput();
	// 到此处,使用 ITK 读取 dicom 文件已经结束
	
	// 此处开始使用 VTK 显示读取的 CT 图像
    using ConnectorType = itk::ImageToVTKImageFilter<ImageType>;  //VTK和ITK链接器
    ConnectorType::Pointer connector = ConnectorType::New();
    connector->SetInput(image);
    connector->Update();

    vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkRenderWindowInteractor::New();
    vtkSmartPointer<vtkImageViewer2> viewer = vtkSmartPointer<vtkImageViewer2>::New();
    viewer->SetInputData(connector->GetOutput());
    viewer->SetupInteractor(interactor);
    viewer->SetSize(800,600);
    viewer->SetColorWindow(255); //设置窗宽
    viewer->SetColorLevel(500);   //设置窗位
    viewer->SetSliceOrientationToXY();
    viewer->SetSlice(1);
    viewer->GetRenderer()->SetBackground(1,1,1);
    viewer->GetRenderWindow()->SetWindowName("ImageViewer2D");
    viewer->Render();
    interactor->Initialize();
    interactor->Start();

    return 0;
}

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值