zoukankan      html  css  js  c++  java
  • VTK中vtk格式文件的读写问题

    项目中为了保存分割的掩码图像mask,我想到了使用vtk格式的vtkStructuredPointsWriter输出基于vtkimagedata的mask,然后再用vtkStructuredPointsReader读入。但是里面遇到了一个问题,使用vtkImageMask对mask和源图像进行处理的时候,发现输出总是为空。怀疑是mask的问题,因为没有使用mask文件输入而是直接使用当前分割后的mask进行掩码处理不会发生这种情况。经过两天的时间,发现我又是漏了一句很重要的话。vtkwriter->SetFileTypeToBinary();加上这句话之后,对mask图像的读取不会发生像素为-1.#qnan0的情况了,这种情况为数值超出范围。然后就解决了这个问题。下面是源码。

    输出vtk格式的volume

    vtkSmartPointer<vtkStructuredPointsWriter > vtkwriter=vtkSmartPointer<vtkStructuredPointsWriter >::New();
    vtkwriter->SetInput(this->m_vtk.mask);
    vtkwriter->SetFileName(FilePathName);
    vtkwriter->SetFileTypeToBinary();
    vtkwriter->Write();

    输入vtk格式的volume

    vtkSmartPointer<vtkStructuredPointsReader > vtkreader=vtkSmartPointer<vtkStructuredPointsReader >::New();

    vtkreader->SetFileName(FilePathName);

    vtkreader->Update();

  • 相关阅读:
    使用uibesizerpath + Cashaplayer画椭圆
    国庆节,回乡
    慎用单例
    终于碰到iOS对象集合深拷贝的坑
    Oracle 按表名导出数据
    代理模式(Proxy Pattern)
    享元模式(Flyweight Pattern)
    外观模式(Facade Pattern)
    组合模式
    装饰者模式
  • 原文地址:https://www.cnblogs.com/qwcbeyond/p/2234772.html
Copyright © 2011-2022 走看看