Annotation Manager Workflow ================================= Example using binary image as input:: import cv2 from tkinter import filedialog from tomni.annotation_manager import AnnotationManager mask_path = filedialog.askopenfilename(title="Select mask.") mask = cv2.imread(mask_path, 0) manager = AnnotationManager.from_binary_mask(mask=mask, include_inner_contours=True) output_dicts = manager.to_dict( features=["area", "circularity", "major_axis", "average_diameter"], feature_multiplier=1 / 742, metric_unit="mm", ) Example using list of dictionaries as input:: import json import cv2 from tkinter import filedialog from tomni.annotation_manager import AnnotationManager json_path = filedialog.askopenfilename(title="Select JSON.") with open(json_path, "rb") as f: dicts = json.load(f) manager = AnnotationManager.from_dicts(dicts=dicts) output_dicts = manager.to_dict( features=["area", "circularity", "major_axis", "average_diameter"], feature_multiplier=1 / 742, metric_unit="mm", ) Example how to filter feature values:: manager.filter( feature="roundness", min_val=0.5, max_val=1.0, inplace=True, )