2025年3D slicer获取segment相关数据(centroid质心,ROI体表面积等)

3D slicer获取segment相关数据(centroid质心,ROI体表面积等)以获取质心为例 以中心点为坐标原点 坐标含负数 目录 目录 3Dslicer 区段统计 Segment statistics 标注图统计 Labelmap statistics 标量体积统计 Scalar volume 闭合曲面统计 Closed surface statistics python 控制台

大家好,我是讯享网,很高兴认识大家。

以获取质心为例(以中心点为坐标原点,坐标含负数)

目录

目录

3Dslicer

区段统计Segment statistics

标注图统计Labelmap statistics

标量体积统计Scalar volume

闭合曲面统计Closed surface statistics

python控制台


3Dslicer

区段统计Segment statistics

这是一个用于计算与分割结构相关的统计数据的模块,例如体积、表面积、平均强度以及每个分割的各种其他指标。

标注图统计Labelmap statistics

标注图统计数据是使用段的二进制标注图表示形式计算的。


讯享网

  • 体素计数:片段中的体素数
  • 体积 mm3 分段的体积(以 mm3 为单位)
  • 体积 cm3 以 cm3 为单位的段的体积
  • 质心:以 RAS 坐标表示的线段的质心
  • 费雷特直径:可以包含整个段的球体的直径
  • 表面积 mm2:以 mm2 为单位的段的表面积
  • 圆度:段的圆度。根据球体的面积之比计算,从费雷特直径减去实际面积。值 1 表示球形结构。请参阅此处的详细定义。
  • 平坦度:线段的平坦度。从第二个最小主力矩的比值的平方根乘以最小值计算。值 0 表示平面结构。请参阅此处的详细定义。
  • 伸长率:刀头的伸长率。从第二大主力矩的平方根乘以第二小的比值计算。请参阅此处的详细定义。
  • 主力矩:线段每个轴的主要惯性矩
  • 主轴:线段旋转的主轴(Principal axis为径向坐标,Orientation about principal axis为轴向坐标)
  • 定向边界框:包含线段的非轴对齐边界框。主轴方向用于定向边界框。
  • 旋转主轴(或主方向)是相对于某个点(通常是质心)定义的惯性矩张量(在上一节中介绍)的特征向量。相应的特征值称为主惯性矩。由于惯性矩张量是相对于空间中的点定义的,因此主轴都通过该点

    (通常是质心)。

  • 径:半径,轴:中心轴,周:圆周

标量体积统计Scalar volume

  • 体素计数:片段中的体素数
  • 体积 mm3 分段的体积(以 mm3 为单位)
  • 体积 cm3 以 cm3 为单位的段的体积
  • 最小值:线段中的最小标量值
  • 最大值:线段中的最大标量值
  • 平均值:线段中的平均标量值
  • 中位数:细分中的标量值中位数
  • 标准偏差:线段中标量值的标准偏差(使用校正后的样本标准偏差公式计算)

闭合曲面统计Closed surface statistics

  • 表面积 mm2:以 mm2 为单位的段的体积
  • 体积 mm3 分段的体积(以 mm3 为单位)
  • 体积 cm3 以 cm3 为单位的段的体积

python控制台

#used LabelmapSegmentStatistics to pull the centroid for each segment in the Segmentation #Then I used the centroid coordinates to generate new spherical segments with a 1mm diameter (or radius?) #These can be used with Segment statistics to query core lesion locations based on anatomical atlases #用LabelmapSegmentStatistics为分割中的每个线段拉出质心,然后使用质心坐标生成直径为1 mm(或半径?)的新球形线段。 #这些数据可与分段统计数据结合使用,以根据解剖图谱查询核心位置 import numpy as np import SegmentStatistics segmentationNode = slicer.util.getNode("Segmentation")# volume_node = slicer.util.getNode("Volume") segmentation = segmentationNode.GetSegmentation() segnum = segmentation.GetNumberOfSegments() for i in range(segnum): segment = segmentation.GetNthSegment(i) segmentId = segmentationNode.GetSegmentation().GetSegmentIdBySegment(segment) segmentName = segment.GetName() segStatLogic = SegmentStatistics.SegmentStatisticsLogic() segStatLogic.getParameterNode().SetParameter("Segmentation", segmentationNode.GetID()) segStatLogic.getParameterNode().SetParameter("LabelmapSegmentStatisticsPlugin.centroid_ras.enabled", str(True)) segStatLogic.computeStatistics() stats = segStatLogic.getStatistics() print(segmentName) centroid_ras = stats[segmentId,"LabelmapSegmentStatisticsPlugin.centroid_ras"] print(centroid_ras) tumorCentroid = vtk.vtkSphereSource() tumorCentroid.SetCenter(centroid_ras) tumorCentroid.SetRadius(1) tumorCentroid.Update() CentroidSegmentName = segmentName + "-centroid" segmentId = segmentationNode.AddSegmentFromClosedSurfaceRepresentation(tumorCentroid.GetOutput(), CentroidSegmentName, [1.0,0.0,0.0])

讯享网

 

 

参考链接:

段统计信息 — 3D 切片器文档 (slicer.readthedocs.io)

小讯
上一篇 2025-03-17 18:17
下一篇 2025-01-08 21:08

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29958.html