在VTK中连通区域分析常用到的类是:vtkPolyDataConnectivityFilter。从名字可以看出来其输入类型为vtkPolyData;了解VTK的人都知道这是图形的基本数据结构保存了图形的几何结构和拓扑结构。如果你要进行连通分析的对象是图形那自然就没问题。但如果需要对图像进行连通区域分析,那该类就不能直接用了,要先进行一步数据类型转换。根据参考文1,我们可以以一种非严谨方式将VTK数据处理算子(Filter)分为一下几类:
1、图像处理 其输入为vtkImageData(图像基本数据类型),输出也为vtkImageData
2、几何提取 其输入为vtkImageData,输出为vtkPolyData
3、图形处理 其输入为vtkPolyData,输出也为vtkPolyData,例如前面的vtkPolyDataConnectivityFilter
4、渲染 如Mapper和Actor 来完成图形图像的显示
为了实现vtkImageData==>vtkPolyData 我们需要使用一种几何提取处理器,参考文献一提到了一种vtkContourFilter(轮廓提取)来完成。vtkContourFilter使用较为简单,只需要设置一个参数等值线,其可以通过函数SetValue或GenerateVale()来完成设置,其具体的不同见参考文献2.
完成数据类型转换我们就可以使用vtkPolyDataConnectivityFilter来提取连通区域。该类在提取连通区域时候有如下6中模式:
1)提取数据集中的最大(最多点)连接区域: