访问itk :: LabelObject的像素列表时遇到问题。 使用itk :: OrientedBoundingBoxLabelObject(https://github.com/blowekamp/itkOBBLabelMap)获得此LabelObject。原始的3D图像是一个CBCT Dicom,我正在寻找一个小矩形标记的位置和方向。ITK从itk获取像素列表:: LabelObject
这是导致获取代码ITK :: LabelObject:
typedef short LabelPixelType;
typedef itk::LabelMap<LabelObjectType> LabelMapType;
typedef itk::OrientedBoundingBoxLabelMapFilter<LabelMapType> OBBLabelMapFilter;
typename OBBLabelMapFilter::Pointer toOBBLabelMap = OBBLabelMapFilter::New();
typename ToLabelMapFilterType::Pointer toLabelMap = ToLabelMapFilterType::New();
toOBBLabelMap->SetInput(toLabelMap->GetOutput());
toOBBLabelMap->Update();
LabelObjectType* labelObject = toOBBLabelMap->GetOutput()->GetNthLabelObject(idx);
OBBSize = labelObject->GetOrientedBoundingBoxSize();
我猜访问像素坐标是可能的,因为它要访问的某种方式,以计算边界框,但到目前为止我还没有做到这一点。然后我尝试将itk :: LabelMap(或LabelObject直接)转换为二进制图像,我可以更轻松地获取像素。并用VTK转换并显示这个markerBinaryImage,而没有更多的结果(我得到一个黑色的图像)。
typedef itk::LabelMapToBinaryImageFilter<LabelMapType, ImageType> LabelMapToBinaryImageFilterType;
LabelMapToBinaryImageFilterType::Pointer labelImageConverter = LabelMapToBinaryImageFilterType::New();
labelImageConverter->SetInput(toLabelMap->GetOutput());
labelImageConverter->Update();
ImageType::Pointer markerBinaryImage = labelImageConverter->GetOutput();
有没有人有关于如何到这个像素列表的想法?
谢谢你,我设法得到这个像素列表,感谢您的建议。我不直接使用region属性的原因是它只给出了一个轴对齐的边界框,我需要一个定向的边界框。这个OBB过滤器虽然运行良好。 –
是的。 :)欢迎来到AABB问题俱乐部!很高兴工作! –