原文地址:http://blog.csdn.net/chinamming/article/details/16829569
[效果演示]
根据脚部的骨骼CT扫描的照片,利用VTK完成读取和三维重建.
[程序实现]
void main ()
{
vtkRenderer *aRenderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(aRenderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
vtkDICOMImageReader *v16 = vtkDICOMImageReader::New();
v16->SetDataByteOrderToLittleEndian();
v16->SetDirectoryName("Foot-CTs");
v16->SetDataSpacing (3.2, 3.2, 1.5);
vtkContourFilter *skinExtractor = vtkContourFilter::New();
skinExtractor->SetInputConnection(v16->GetOutputPort());
skinExtractor->SetValue(0, 500);
vtkPolyDataNormals *skinNormals = vtkPolyDataNormals::New();
skinNormals->SetInputConnection(skinExtractor->GetOutputPort());
skinNormals->SetFeatureAngle(60.0);
vtkPolyDataMapper *skinMapper = vtkPolyDataMapper::New();
skinMapper->SetInputConnection(skinNormals->GetOutputPort());
skinMapper->ScalarVisibilityOff();
vtkActor *skin = vtkActor::New();
skin->SetMapper(skinMapper);
vtkOutlineFilter *outlineData = vtkOutlineFilter::New();
outlineData->SetInputConnection(v16->GetOutputPort());
vtkPolyDataMapper *mapOutline = vtkPolyDataMapper::New();
mapOutline->SetInputConnection(outlineData->GetOutputPort());
vtkActor *outline = vtkActor::New();
outline->SetMapper(mapOutline);
outline->GetProperty()->SetColor(0,0,0);
vtkCamera *aCamera = vtkCamera::New();
aCamera->SetViewUp (0, 0, -1);
aCamera->SetPosition (0, 1, 0);
aCamera->SetFocalPoint (0, 0, 0);
aCamera->ComputeViewPlaneNormal();
aRenderer->AddActor(outline);
aRenderer->AddActor(skin);
aRenderer->SetActiveCamera(aCamera);
aRenderer->ResetCamera ();
aCamera->Dolly(1.5);
aRenderer->SetBackground(1,1,1);
renWin->SetSize(640, 480);
aRenderer->ResetCameraClippingRange ();
// Initialize the event loop and then start it.
iren->Initialize();
iren->Start();
v16->Delete();
skinExtractor->Delete();
skinNormals->Delete();
skinMapper->Delete();
skin->Delete();
outlineData->Delete();
mapOutline->Delete();
outline->Delete();
aCamera->Delete();
iren->Delete();
renWin->Delete();
aRenderer->Delete();
}
原文地址:http://blog.csdn.net/chinamming/article/details/16829569
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
vtk 三维重建 能用的三维重建代码 直接编译就能用
在网上鲜有python-vtk实现三维可视化的资源,因此分享以下自己写的东西,水平不够仅供参考!代码利用python-vtk三维可视化模块,读取txt格式的点云数据,并显示,可利用鼠标进行交互。
采用移动立方体的绘制方法 对CT数据进行三维可视化
三维重建的很好的一个示例程序 在利用VTK的条件下对于三维重建更好的实现
三维重建_基于QT+VTK实现的CT图像三维重建算法_项目源码_优质项目实战
注释非常清晰的一份基于VTK读取点云信息实现三维重建的代码,读取格式包括PCL生成的PCD格式和TXT格式,适合初学者,当然其他格式的点云也是可以的,只要更改一下读取云数据的函数就可以了,有什么不懂的可以问我!...
VTK.js 实现网页版dicom图像三维重建
三维重建_使用VTK进行医学影像三维重建项目_优质项目分享
基于VTK光线投射法的CT图像三维重建,一篇不错的文献。
该算法使用Power Crust对三维点云进行曲面重建,接着对得到的网格进行线性调整、简化和平滑,最后引入VTK进行渲染、绘制、显示,并实时交互。实验结果表明,该算法可以加快散乱点云数据的重建速度,较好地保持了点云...
基于VTK的医学影像的三维重建项目源码
vtk初学者所需要的文献!!多看看有好处!
基于VTK的医学图像三维重建.pdf
读取硬盘的dicom图像文件夹,进行三维重建。鼠标控制旋转。
利用VTK编程语言,对dcm序列进行三维重建
通过VTK将二维图像重构为三维图像,使用了移动立方体算法
利用vtk显示一个三维魔方 后续的工作就没做了 呵呵
基于vtk+vs2005的医学三维重建 基于vtk+vs2005的医学三维重建
利用VTK三维重建软件与VS2010结合,读取系列图像,并能显示三维重建结果,并且可以分别提取皮肤和骨骼,里面包含相应图片,语言为C++语言(Using VTK 3D reconstruction software and VS2010 combination, read a ...
VTK-5.0.1-control-1.1.zip 开发三维软件必备