#!/usr/bin/env python3 import argparse from pathlib import Path import cv2 import numpy as np def odd_positive(value: str) -> int: size = int(value) if size < 1 or size % 2 == 0: raise argparse.ArgumentTypeError("kernel size must be a positive odd integer") return size parser = argparse.ArgumentParser( description="Apply an OpenCV morphology operation to a binary mask." ) parser.add_argument("input_mask", type=Path) parser.add_argument("output_mask", type=Path) parser.add_argument( "--operation", choices=("erode", "dilate", "open", "close"), default="open", ) parser.add_argument("--kernel-size", type=odd_positive, default=5) args = parser.parse_args()