如何在SimpleItk中获取标签的中心坐标

时间:2016-10-10 08:02:03

标签: c# itk

我正在使用SimpleITK框架(x64)进行C#。

在我做了一些操作和过滤之后,我通过LabelShapeStatisticsImageFilter获得了一堆标签,我对此感兴趣。

如何获取特定标签的中心坐标? 当我使用函数GetCentroid时,我得到部分否定结果,我不明白如何继续处理这些数据。

提前致谢。

2 个答案:

答案 0 :(得分:0)

LabelShapeStatisticsImageFilter::GetCentroid方法返回物理空间中的一个点而不是索引空间中的一个点。这会考虑图像的原点,间距和方向矩阵,这可能会导致负值。要将结果转换为索引空间,您可以根据需要使用Image::TransformPhysicalPointToContinuousIndexImage::TransformPhysicalPointToIndex

答案 1 :(得分:0)

感谢您的回答和评论。

我在一个例子的评论中找到了问题的解决方案:

 // NOTE: As of April 8, 2015 the filter does not work with non-zero origins

所以我保存了Origin数据,将Origin设置为(0,0) - 获得了一个有用的Centeroid,并改变了原始Origin的Centeroid结果,最终将其再次设置为以前的值。