vtk读取序列医学Dicom图片进行体绘制(vtkVolumeRayCastCompositeFunction类)
来源:互联网 发布:淘宝方舟生存进化steam 编辑:程序博客网 时间:2024/06/02 14:09
#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkActor.h"#include "vtkSmartPointer.h"#include "vtkProperty.h"#include "vtkCamera.h"#include "vtkDICOMImageReader.h"#include "vtkImageCast.h"#include "vtkPiecewiseFunction.h"#include "vtkColorTransferFunction.h"#include "vtkVolumeProperty.h"#include "vtkVolumeRayCastCompositeFunction.h"#include "vtkVolumeRayCastMapper.h"#include "vtkVolume.h"void main(){vtkSmartPointer<vtkDICOMImageReader>dicomImagereader=vtkSmartPointer<vtkDICOMImageReader>::New();dicomImagereader->SetDirectoryName("E:\\tougu");dicomImagereader->SetDataByteOrderToLittleEndian();vtkSmartPointer<vtkImageCast>readerImageCast=vtkSmartPointer<vtkImageCast>::New();readerImageCast->SetInputConnection(dicomImagereader->GetOutputPort());readerImageCast->SetOutputScalarTypeToUnsignedShort();readerImageCast->Update();vtkSmartPointer<vtkPiecewiseFunction>opactiyTransferFunction=vtkSmartPointer<vtkPiecewiseFunction>::New();opactiyTransferFunction->AddPoint(120,0.0);opactiyTransferFunction->AddPoint(250,1.0);opactiyTransferFunction->AddPoint(520,1.0);opactiyTransferFunction->AddPoint(650,0.0);vtkSmartPointer<vtkColorTransferFunction>colorTransferFunction=vtkSmartPointer<vtkColorTransferFunction>::New();colorTransferFunction->AddRGBPoint(120, 255/255.0, 98/255.0, 98/255.0);colorTransferFunction->AddRGBPoint(250, 255/255.0, 255/255.0, 180/255.0);colorTransferFunction->AddRGBPoint(520, 1.0, 1.0, 1.0);colorTransferFunction->AddRGBPoint(650, 1.0, 1.0, 1.0);vtkSmartPointer<vtkPiecewiseFunction>gradientTransferFunction=vtkSmartPointer<vtkPiecewiseFunction>::New();gradientTransferFunction->AddPoint(120, 2.0);gradientTransferFunction->AddPoint(250, 2.0);gradientTransferFunction->AddPoint(520, 0.1); gradientTransferFunction->AddPoint(650, 0.1);vtkSmartPointer<vtkVolumeProperty>volumeProperty=vtkSmartPointer<vtkVolumeProperty>::New();volumeProperty->SetColor(colorTransferFunction);volumeProperty->SetScalarOpacity(opactiyTransferFunction);volumeProperty->SetGradientOpacity(gradientTransferFunction);volumeProperty->ShadeOn();//阴影//volumeProperty->SetInterpolationTypeToLinear();//直线与样条插值之间逐发函数volumeProperty->SetAmbient(0.2);//环境光系数volumeProperty->SetDiffuse(0.9);//漫反射volumeProperty->SetSpecular(0.2);//高光系数volumeProperty->SetSpecularPower(10);//高光强度vtkSmartPointer<vtkVolumeRayCastCompositeFunction>compositeRaycastFunction=vtkSmartPointer<vtkVolumeRayCastCompositeFunction>::New();vtkSmartPointer<vtkVolumeRayCastMapper>volumeMapper=vtkSmartPointer<vtkVolumeRayCastMapper>::New();volumeMapper->SetVolumeRayCastFunction(compositeRaycastFunction);//载入体绘制方法volumeMapper->SetInputConnection(readerImageCast->GetOutputPort());/*fixedPointVolumeMapper=vtkFixedPointVolumeRayCastMapper::New();fixedPointVolumeMapper->SetInput(dicomImagereader->GetOutput());*/vtkSmartPointer<vtkVolume>volume=vtkSmartPointer<vtkVolume>::New();volume->SetMapper(volumeMapper);volume->SetProperty(volumeProperty);//设置体属性vtkSmartPointer<vtkRenderer>ren1=vtkSmartPointer<vtkRenderer>::New();ren1->AddVolume(volume);ren1->SetBackground(1,1,1);vtkSmartPointer<vtkRenderWindow>renWin=vtkSmartPointer<vtkRenderWindow>::New();renWin->AddRenderer(ren1);renWin->SetSize(800,800);vtkSmartPointer<vtkRenderWindowInteractor>iren=vtkSmartPointer<vtkRenderWindowInteractor>::New();iren->SetRenderWindow(renWin);renWin->Render();iren->Start();}
读取序列的Dicom图片并用vtkVolumeRayCastCompositeFunction进行体绘制,其关键就在于不透明函数参数,以及颜色参数的设置
0 0
- vtk读取序列医学Dicom图片进行体绘制(vtkVolumeRayCastCompositeFunction类)
- VTK读取DICOM医学图片进行体绘制的几种方法
- VTK读取序列的Dicom医学图片,用Marchingcube进行重建,并保存为obj文件
- 使用vtk面绘制dicom医学断层图像
- VTK:读入DICOM,体绘制
- VTK:读取raw图片格式进行体绘制
- VTK读取序列JPG图片MC算法进行三维重建
- VTK读取DICOM图像
- ITK+VTK+QT 读取DICOM序列图像遇到的问题(1)
- VTK:读取raw文件进行面绘制
- VC++ VTK 读取序列CT图片三维重建
- 读取并可视化DICOM图像(VTK & OpenCV)
- 医学图像DICOM处理-VTK+Qt+VS开发环境搭建
- vtk读取raw数据的一个例子(体绘制)
- DICOM医学图像读取涉及到的医学坐标体系
- ITK/VTK对DICOM文件的读取
- ITK&&VTK读取DICOM数据并渲染
- 3 vtk读取并显示dicom文件
- C#中值类型和引用类型及类型的转换
- SlidingMenu关闭手势滑动
- 一些有用的技术博文
- grep断言
- libpcap详解
- vtk读取序列医学Dicom图片进行体绘制(vtkVolumeRayCastCompositeFunction类)
- Hadoop 2.7集群安装指南
- oracle中表空间
- 重构的简单演示
- 一笔没有问题的数据 误操作成汇总和结算不一致的情况的处理方式
- yum 升级 mongodb
- 考后总结——2016的最后一波自学考试(c++、数据结构)
- java通过ftp上传、下载文件,遍历文件目录
- 转: linux的物理内存与线性地址空间布局