我正在做医学图像分割和三维图像处理,有两幅图像,一张是地面真实值(gt),一张是分割预测结果(segm),我需要计算另外两个指标。
其中R是gt
,S是segm
。在python中,交集可以计算为np.logical_and(segm, gt)
。但我不知道如何计算这四种评估指标。非常感谢你的帮助。
发布于 2018-09-06 07:58:36
假设segm
和gt
是二进制ndarray,则可以计算VOE和VD:
voe = 100 * (1. - np.logical_and(segm, gt).sum() / float(np.logical_or(segm, gt)))
vd = 100 * (segm.sum() - gt.sum()) / float(gt.sum())
请注意,您可以使用二进制掩码的.sum()
来计算它的“大小”,即收S= segm.sum()
。
发布于 2021-11-11 13:52:24
是的,有一些基于表面距离的度量。
https://pypi.org/project/seg-metrics/
这是一个简单的包,用于计算用于医学图像分割的不同指标(带有后缀.mhd、.mha、.nii、.nii.gz或.nrrd的图像),并将它们写入csv文件。
举个例子:
首先安装此软件包。pip install seg-metrics
import seg_metrics.seg_metrics as sg
labels = [0, 4, 5 ,6 ,7 , 8]
gdth_file = 'data/gdth.mhd' # ground truth image full path
pred_file = 'data/pred.mhd' # prediction image full path
csv_file = 'metrics.csv'
metrics = sg.write_metrics(labels=labels[1:], # exclude background
gdth_path=gdth_file,
pred_path=pred_file,
csv_file=csv_file,
metrics=['hd', 'msd'])
https://stackoverflow.com/questions/52196179
复制相似问题