內存中有段圖片數據 ,使用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