内存中有段图片数据 ,使用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