Download this file

36 lines (28 with data), 984 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
% compute metrics
function [dm1,dm2,PD1,PD2,HD1,HD2]=eval_metrics(I,m_cnt,auto_seg,manualPoints,para)
% resize mask in the original image size
auto_seg_r=remap_mask(auto_seg,m_cnt,I);
% convex hull of resized mask
c_auto_seg_r=bwconvhull(auto_seg_r);
% convert mask to contour
autoPoints1=contourc(double(auto_seg_r), [0 0]); autoPoints1=autoPoints1(:,2:end)';
autoPoints2=contourc(double(c_auto_seg_r), [0 0]);autoPoints2=autoPoints2(:,2:end)';
if ~isempty(autoPoints1) && ~isempty(autoPoints2)
% Dice Metric
dm1 = calc_dm(autoPoints1,manualPoints,para);
dm2 = calc_dm(autoPoints2,manualPoints,para);
% Perpendicular Distance
PD1 = calc_dist(autoPoints1,manualPoints,para);
PD2 = calc_dist(autoPoints2,manualPoints,para);
% Hausdorff distance
HD1 = hausdorff( manualPoints, autoPoints1);
HD2 = hausdorff( manualPoints, autoPoints2);
else
dm1=0;
dm2=0;
PD1=100;
PD2=100;
HD1=100;
HD2=100;
end
end