Пример #1
0
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
Пример #2
0
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
Пример #3
0
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")