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

相關文章
相關標籤/搜索