下面是VR SelectROI的另外一种实现方法,和http://blog.csdn.net/zzhouzhou237/article/details/55808212的不同是这种方法使用的是VRCrop的vtkExtractVOI类,真正对数据进行切割,而不是将非目标区域置成背景色(MVC框架):
大致思路介绍:1、根据所画矩形生成延伸的polydata
2、因为vtkIntersectionPolyDataFilter 是求两个polydata交集的,所以将vtkImagdata(待切割数据)转换成 polydata(使用vtkMarchingCubes),生成交集的polydata
3、求出交集Polydata的bounds
4、使用vtkExtractVOI切割//vtkExtractVOI 只能求结构数据(如 vtkImageData不能是polydata)
该方法的缺点是太慢了
//从model里读取数据
QVector<DxPoint> ROIPoints = m_pModifyVRModel->GetPoint();