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,
)