def run_mask_iou_test(rtstruct:RTStruct, mask, IOU_threshold, use_pin_hole=False): # Save and load mask mask_name = "test" rtstruct.add_roi(mask, name=mask_name, use_pin_hole=use_pin_hole) loaded_mask = rtstruct.get_roi_mask_by_name(mask_name) # Use IOU to test accuracy of loaded mask print(np.sum(mask)) print(np.sum(loaded_mask)) numerator = np.logical_and(mask, loaded_mask) denominator = np.logical_or(mask, loaded_mask) IOU = np.sum(numerator) / np.sum(denominator) assert IOU >= IOU_threshold
def run_mask_iou_test( rtstruct: RTStruct, mask, IOU_threshold, use_pin_hole=False, approximate_contours=True, ): # Save and load mask mask_name = "test" rtstruct.add_roi( mask, name=mask_name, use_pin_hole=use_pin_hole, approximate_contours=approximate_contours, ) loaded_mask = rtstruct.get_roi_mask_by_name(mask_name) # Use IOU to test accuracy of loaded mask numerator = np.logical_and(mask, loaded_mask) denominator = np.logical_or(mask, loaded_mask) IOU = np.sum(numerator) / np.sum(denominator) assert IOU >= IOU_threshold
def test_get_invalid_roi_mask_by_name(new_rtstruct: RTStruct): assert new_rtstruct.get_roi_names() == [] with pytest.raises(RTStruct.ROIException): new_rtstruct.get_roi_mask_by_name("FAKE_NAME")