Skip to content

Commit d79d414

Browse files
author
Tim Scherr
committed
Fix neighbor distance normalization for elongated objects
See also hip-satomi/microbeSEG#21
1 parent 805d50c commit d79d414

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

segmentation/training/train_data_representations.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,11 @@ def distance_label_2d(label, cell_radius, neighbor_radius):
9999
int(max(centroid[1] - cell_radius, 0)):int(min(centroid[1] + cell_radius, label.shape[1]))
100100
]
101101
nucleus_crop_dist = distance_transform_edt(nucleus_crop)
102-
if np.max(nucleus_crop_dist) > 0:
103-
nucleus_crop_dist = nucleus_crop_dist / np.max(nucleus_crop_dist)
102+
max_dist = np.max(nucleus_crop_dist)
103+
if max_dist > 0:
104+
nucleus_crop_dist = nucleus_crop_dist / max_dist
105+
else:
106+
continue
104107
label_dist[
105108
int(max(centroid[0] - cell_radius, 0)):int(min(centroid[0] + cell_radius, label.shape[0])),
106109
int(max(centroid[1] - cell_radius, 0)):int(min(centroid[1] + cell_radius, label.shape[1]))
@@ -126,9 +129,8 @@ def distance_label_2d(label, cell_radius, neighbor_radius):
126129
nucleus_neighbor_crop_dist = distance_transform_edt(nucleus_neighbor_crop)
127130
nucleus_neighbor_crop_dist = nucleus_neighbor_crop_dist * nucleus_neighbor_crop_nucleus
128131
if np.max(nucleus_neighbor_crop_dist) > 0:
129-
# nucleus_neighbor_crop_dist = nucleus_neighbor_crop_dist / np.max(nucleus_neighbor_crop_dist)
130-
# For elongated objects the scaling is not good (broad large distance values/areas)
131-
denominator = np.minimum(np.max(nucleus_neighbor_crop_dist), 1.1 * props[i].minor_axis_length) + 1e-8
132+
denominator = np.minimum(max_dist + 3, # larger than max_dist since scaled later on (improves small cells)
133+
np.max(nucleus_neighbor_crop_dist))
132134
nucleus_neighbor_crop_dist = nucleus_neighbor_crop_dist / denominator
133135
nucleus_neighbor_crop_dist = np.clip(nucleus_neighbor_crop_dist, 0, 1)
134136
else:

0 commit comments

Comments
 (0)