|
|
@@ -200,20 +200,20 @@ class CoordinateUtils:
|
|
|
def crop_region(image: np.ndarray, bbox: List[float], padding: int = 0) -> np.ndarray:
|
|
|
"""
|
|
|
裁剪图像区域
|
|
|
-
|
|
|
+
|
|
|
Args:
|
|
|
image: 原始图像
|
|
|
bbox: 裁剪区域 [x1, y1, x2, y2]
|
|
|
padding: 边缘padding(像素),可以为正数(扩展裁剪区域)或负数(收缩裁剪区域)
|
|
|
-
|
|
|
+
|
|
|
Returns:
|
|
|
裁剪后的图像
|
|
|
"""
|
|
|
if len(bbox) < 4:
|
|
|
return image
|
|
|
-
|
|
|
+
|
|
|
h, w = image.shape[:2]
|
|
|
-
|
|
|
+
|
|
|
# 解析padding(支持单个值或四个值)
|
|
|
if isinstance(padding, (int, float)):
|
|
|
pad_left = pad_right = pad_top = pad_bottom = int(padding)
|
|
|
@@ -238,7 +238,7 @@ class CoordinateUtils:
|
|
|
# 检查是否有效区域
|
|
|
if x2 <= x1 or y2 <= y1:
|
|
|
return image
|
|
|
-
|
|
|
+
|
|
|
return image[y1:y2, x1:x2]
|
|
|
|
|
|
@staticmethod
|