diff --git a/common/research/common/dataset/improvement/zoom.py b/common/research/common/dataset/improvement/zoom.py index 0cdf21670607ddb86818315860afc05527bf84fd..b40b766dd4e61c847b90c2ba83f80cf574821f6c 100644 --- a/common/research/common/dataset/improvement/zoom.py +++ b/common/research/common/dataset/improvement/zoom.py @@ -14,16 +14,12 @@ def crop_image_annotation(image_annotation: ImageAnnotation, box: Box, min_cover objects = InBoxValidator(box, min_coverage).filter(image_annotation.objects, image_annotation.image) objects = [copy(o) for o in objects] for obj in objects: - x, y, w, h = obj.box.x, obj.box.y, obj.box.w, obj.box.h - x -= box.x1 - y -= box.y1 - if x < 0: - w += x - x = 0 - if y < 0: - h += y - y = 0 - obj.box = Box.from_size(x, y, w, h) + obj.box = Box.from_positions( + x1=max(0, obj.box.x1 - box.x1), + y1=max(0, obj.box.y1 - box.y1), + x2=min(box.x2, obj.box.x2 - box.x1), + y2=min(box.y2, obj.box.y2 - box.y1), + ) return ImageAnnotation( image_path=None, xml_path=None,