|
|
@@ -657,8 +657,8 @@ def apply_classifier(x, model, img, im0): |
|
|
|
return x |
|
|
|
|
|
|
|
|
|
|
|
def save_one_box(xyxy, im, file='image.jpg', gain=1.02, pad=10, square=False, BGR=False): |
|
|
|
# Save an image crop as {file} with crop size multiplied by {gain} and padded by {pad} pixels |
|
|
|
def save_one_box(xyxy, im, file='image.jpg', gain=1.02, pad=10, square=False, BGR=False, save=True): |
|
|
|
# Save image crop as {file} with crop size multiple {gain} and {pad} pixels. Save and/or return crop |
|
|
|
xyxy = torch.tensor(xyxy).view(-1, 4) |
|
|
|
b = xyxy2xywh(xyxy) # boxes |
|
|
|
if square: |
|
|
@@ -666,8 +666,10 @@ def save_one_box(xyxy, im, file='image.jpg', gain=1.02, pad=10, square=False, BG |
|
|
|
b[:, 2:] = b[:, 2:] * gain + pad # box wh * gain + pad |
|
|
|
xyxy = xywh2xyxy(b).long() |
|
|
|
clip_coords(xyxy, im.shape) |
|
|
|
crop = im[int(xyxy[0, 1]):int(xyxy[0, 3]), int(xyxy[0, 0]):int(xyxy[0, 2])] |
|
|
|
cv2.imwrite(str(increment_path(file, mkdir=True).with_suffix('.jpg')), crop if BGR else crop[..., ::-1]) |
|
|
|
crop = im[int(xyxy[0, 1]):int(xyxy[0, 3]), int(xyxy[0, 0]):int(xyxy[0, 2]), ::(1 if BGR else -1)] |
|
|
|
if save: |
|
|
|
cv2.imwrite(str(increment_path(file, mkdir=True).with_suffix('.jpg')), crop) |
|
|
|
return crop |
|
|
|
|
|
|
|
|
|
|
|
def increment_path(path, exist_ok=False, sep='', mkdir=False): |