Fixed boxes_from_mask avoiding tiny boxes
This commit is contained in:
parent
d44dd8822c
commit
cc314820da
@ -77,7 +77,8 @@ def numpy_to_bytes(image_numpy: np.ndarray, ext: str) -> bytes:
|
|||||||
data = cv2.imencode(
|
data = cv2.imencode(
|
||||||
f".{ext}",
|
f".{ext}",
|
||||||
image_numpy,
|
image_numpy,
|
||||||
[int(cv2.IMWRITE_JPEG_QUALITY), 100, int(cv2.IMWRITE_PNG_COMPRESSION), 0],
|
[int(cv2.IMWRITE_JPEG_QUALITY), 100, int(
|
||||||
|
cv2.IMWRITE_PNG_COMPRESSION), 0],
|
||||||
)[1]
|
)[1]
|
||||||
image_bytes = data.tobytes()
|
image_bytes = data.tobytes()
|
||||||
return image_bytes
|
return image_bytes
|
||||||
@ -158,7 +159,7 @@ def pad_img_to_modulo(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def boxes_from_mask(mask: np.ndarray) -> List[np.ndarray]:
|
def boxes_from_mask(mask: np.ndarray, min_area: float = 0.02) -> List[np.ndarray]:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
mask: (h, w, 1) 0~255
|
mask: (h, w, 1) 0~255
|
||||||
@ -168,7 +169,10 @@ def boxes_from_mask(mask: np.ndarray) -> List[np.ndarray]:
|
|||||||
"""
|
"""
|
||||||
height, width = mask.shape[:2]
|
height, width = mask.shape[:2]
|
||||||
_, thresh = cv2.threshold(mask, 127, 255, 0)
|
_, thresh = cv2.threshold(mask, 127, 255, 0)
|
||||||
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
contours, _ = cv2.findContours(
|
||||||
|
thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
||||||
|
contours = [c for c in contours if cv2.contourArea(
|
||||||
|
c) > height*width*min_area]
|
||||||
|
|
||||||
boxes = []
|
boxes = []
|
||||||
for cnt in contours:
|
for cnt in contours:
|
||||||
|
Loading…
Reference in New Issue
Block a user