zoukankan      html  css  js  c++  java
  • Vtk读取并显示保存图像

    (1):Vtk读取并显示图像:三种方法  

    转载:未知出处

    转载:用VTK显示平面图片:http://blog.csdn.net/tonylk/article/details/464881

    用到vtkJPEGReader类。

     包含的头文件:

    #include "vtkActor.h" #include "vtkRenderer.h"
    #include "vtkRenderWindow.h"
    #include "vtkRenderWindowInteractor.h" #include "vtkImageViewer.h" #include "vtkJPEGReader.h" #include "vtkImageActor.h"
    #include "vtkInteractorStyleImage.h" #include "vtkActor2D.h"  
    方法一:

    使用vtkImageMapper和vtkAcotor2D来实现

    int main(int argc, char **argv)
    {
    int extent[6];
    vtkJPEGReader *m_reader = vtkJPEGReader::New();
    m_reader->SetFileName("C:\Users\igst\Documents\美图图库\叶.jpg");
     m_reader->SetDataByteOrderToLittleEndian();
    m_reader->SetDataScalarTypeToUnsignedChar();
     m_reader->SetFileDimensionality(3);
    vtkImageMapper *mapper=vtkImageMapper::New();
     mapper->SetInput(m_reader->GetOutput());
    mapper->SetColorLevel(128); mapper->SetColorWindow(256);
    vtkActor2D *actor=vtkActor2D::New();
    actor->SetMapper(mapper);
    vtkRenderer *m_Renderer = vtkRenderer::New();
    vtkRenderWindow *m_RenWin = vtkRenderWindow::New();
     m_RenWin->AddRenderer(m_Renderer);
    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(m_RenWin);
    vtkInteractorStyleImage *interactor = vtkInteractorStyleImage::New();
     iren->SetInteractorStyle(interactor); m_Renderer->AddActor(actor);
    m_Renderer->SetBackground(0.1, 0.2, 0.4); m_RenWin->Render();
    m_reader->GetDataExtent(extent);//如果把这条命令放在Render()的前面则无效
    m_RenWin->SetSize(extent[1],extent[3]);
    iren->Initialize();
    iren->Start();
    return 0;
     } 

    结果:
     方法二:

    使用vtkImageActor类,不需要用vktImageMaper

    int main(int argc, char **argv)
     {
    vtkJPEGReader *m_reader = vtkJPEGReader::New();
    m_reader->SetFileName("C:\Users\igst\Documents\美图图库\荷叶.jpg");
    m_reader->SetDataByteOrderToLittleEndian();
    m_reader->SetDataScalarTypeToUnsignedChar();
    m_reader->SetFileDimensionality(3);
    vtkImageActor *m_Actor = vtkImageActor::New();
    m_Actor->SetInput(m_reader->GetOutput()); vtkRenderer *m_Renderer = vtkRenderer::New();
    vtkRenderWindow *m_RenWin = vtkRenderWindow::New();
    m_RenWin->AddRenderer(m_Renderer);
    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(m_RenWin);
    vtkInteractorStyleImage *interactor = vtkInteractorStyleImage::New();
    iren->SetInteractorStyle(interactor); m_Renderer->AddActor(m_Actor);
    m_Renderer->SetBackground(0.1, 0.2, 0.4);
    m_RenWin->Render();
    iren->Initialize();
    iren->Start();
    return 0;
     } 
    
    
     
    方法三:简便快速
    使用ImageViewer,需要调节窗宽窗位
    
    ImageViewer将 vtkRenderWindow, vtkRenderer, vtkActor2D and vtkImageMapper集成在了一起,
    不需要再对vtkRenderWindow, vtkRenderer, vtkActor2D and vtkImageMapper定义。
     int main() {
       vtkJPEGReader *image=vtkJPEGReader::New();
       image->SetFileName("C:\Users\igst\Documents\美图图库\竹林.jpg");
       image->SetDataByteOrderToLittleEndian(); 
       image->SetDataScalarTypeToUnsignedChar();
       vtkImageViewer *pViewer = vtkImageViewer::New();//显示二维图形  
       pViewer->SetColorLevel(128);//设置窗宽窗位, 
       pViewer->SetColorWindow(256);
       pViewer->SetInput(image->GetOutput()); 
       pViewer->Render();
       vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();  
       iren->SetRenderWindow(pViewer->GetRenderWindow()); 
      iren->Initialize(); 
      iren->Start();  
      return 0;
     } 


    (2):VTK保存图片


  • 相关阅读:
    error LNK2001: unresolved external symbol "public: __thiscall ControllerInterface::ControllerInterface(class QObject *)" (??0ControllerInterface@@QAE@PAVQObject@@@Z) downloadcontroller.obj
    链接程序的时候遇到问题:fatal error LNK1104: cannot open file 'rctrl-d.lib'
    vs编译报错 BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
    qt 编译unresolved external symbol的错误解决
    程序外框不显示
    Pc移植到Mac的技术细节
    qt中moc的作用
    做回自己,保持作为一个男人的魅力是维持一个维持一段恋爱关系长久的前提
    NLP入门(三)词形还原(Lemmatization)
    NLP入门(二)探究TF-IDF的原理
  • 原文地址:https://www.cnblogs.com/wishchin/p/9200392.html
Copyright © 2011-2022 走看看