Skip to content

Commit 4cf71ff

Browse files
committed
Warning for missing object measure IDs
1 parent e0860cb commit 4cf71ff

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

flamingo_tools/measurements.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import multiprocessing as mp
22
import os
3+
import warnings
34
from concurrent import futures
45
from functools import partial
56
from typing import List, Optional, Tuple
@@ -188,14 +189,22 @@ def _regionprops_features(seg_id, table, image, segmentation, resolution, backgr
188189
return features
189190

190191

191-
def get_object_measures_from_table(arr_seg, table_measures):
192+
def get_object_measures_from_table(arr_seg, table):
192193
"""Return object measurements for label IDs wthin array.
193194
"""
194195
# iterate through segmentation ids in reference mask
195196
ref_ids = list(np.unique(arr_seg)[1:])
196-
measure_ids = list(table_measures["label_id"])
197+
measure_ids = list(table["label_id"])
197198
object_ids = [id for id in ref_ids if id in measure_ids]
198-
measures = pd.DataFrame({k: float(table_measures[table_measures["label_id"] == id, "median"]) for k in object_ids})
199+
if len(object_ids) < len(ref_ids):
200+
warnings.warn(f"Not all IDs were found in measurement table. Using {len(object_ids)}/{len(ref_ids)}.")
201+
202+
median_values = [table.at[table.index[table["label_id"] == label_id][0], "median"] for label_id in object_ids]
203+
204+
measures = pd.DataFrame({
205+
"label_id": object_ids,
206+
"median": median_values,
207+
})
199208
return measures
200209

201210

0 commit comments

Comments
 (0)