vtk获取内存中图像数据

 内存中有段图片数据  ,使用VTK来读入,而后就能够经过getoutputport() /getoutput()来获取了php

 

    vtkImageImport *importer = vtkImageImport::New();
    importer->SetWholeExtent( 0, m_p_w_picpath->width-1, 0, m_p_w_picpath->height-1, 0, 0 );
    importer->SetDataExtentToWholeExtent();
    importer->SetDataScalarTypeToUnsignedChar();
    importer->SetNumberOfScalarComponents(m_p_w_picpath->depth);
    importer->SetImportVoidPointer(m_p_w_picpath->data);
ide

  //  importer->Update();spa

 

vtk读取dat 、raw等文件,不过文件后缀必须加上.1什么的.net

vtkVolume16Reader *v16 = vtkVolume16Reader::New();
    v16->SetDataDimensions(640, 480); //图像大小
    v16->SetDataByteOrderToLittleEndian();
    v16->SetFilePrefix("./0.dat");
    v16->SetImageRange(1, 1);
    v16->SetDataSpacing(1.0, 1.0, 1.0);
blog


    vtkImageResample *sample = vtkImageResample::New();
    sample->SetInput((vtkDataObject*)v16->GetOutput());
    sample->SetAxisMagnificationFactor(0, 1.2);
    sample->SetAxisMagnificationFactor(1, 1.2);
图片

    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
    vtkImageViewer *viewer = vtkImageViewer::New();
    viewer->SetupInteractor(iren);
    viewer->SetInput(sample->GetOutput());
内存

 

 

 

VTKRenderer显示图片进行更新切换:ci

先removeActorrem

而后addActorget

最后Render()

 

本文来源:http://blog.csdn.net/zmy3376365/article/details/7717721

 

quarter里的数据是raw格式的,为了适应vtkVolume16Reader这个类的方法,把这些raw格式的图像都写成后缀为1,2,3...你能够写一个头文件,格式为mhd或者mha的,内容以下:

NDims = 2
DimSize = 64 64 1 
ElementType = MET_USHORT 
ElementSpacing = 1.0 1.0 1.0 
ElementByteOrderMSB = False 
ElementDataFile = 1.raw

这上面的内容复制到记事本里,而后保存了1.mha.
接着在quarter里把quarter.1重命名为"1.raw",把"1.mha"和"1.raw"放在同一个目录下,而后能够用itk自带的ImageViewer打开1.mha,就能看到这个图像长什么样子了。其余的quarter下的图像也是同样。

能够参考vtkMetaImageReader这个类。

用itkSnap也能打开,itkSnap下载地址:http://www.itksnap.org/pmwiki/pmwiki.php

 

本文来源:http://blog.csdn.net/simple2life/article/details/6034137

相关文章
相关标签/搜索