728x90
반응형
opencv를 사용하면서 매번 헷갈리는게 crop이었던 것 같다.
import cv2
# image read
image = cv2.imread('/my_dir/test_img.png')
# 내가 자르고 싶은 bbox의 좌표 x1,y1,x2,y2
x1 = 50
y1 = 50
x2 = 100
y2 = 100
# crop image
crop_image = image[y1:y2,x1:x2]
# save image
cv2.imwrite('/my_dir/crop_img.png',crop_image)
이미지에서 pixel좌표를 가지고 위치를 지정하는데, 왼쪽 맨 위가 (0,0)이고 맨 오른쪽은 (w,0), 맨 왼쪽아래는 (w,h), 맨 오른쪽 아래는 (0,h)이렇게 나타낸다.
여기서 w, h는 이미지의 width와 height을 나타낸다.
cv2에서 어떻게 w, h를 구할 수 있을까?
생각보다 간단하다
h, w, c = image.shape
cv2로 이미지를 불러오고, 그 이미지의 shape을 구하면 알 수 있다. 순서는 위에 나온대로 하면 된다.
728x90
반응형
'OpenCV' 카테고리의 다른 글
[OpenCV] 이미지 처리 (합성2) (0) | 2024.08.17 |
---|---|
[OpenCV] 이미지 처리 (합성1) (0) | 2024.08.17 |
[OpenCV] 이미지 처리 (resize) (0) | 2024.08.17 |
[OpenCV] 이미지 처리 (밝기 조절) (0) | 2024.08.17 |
[OpenCV] 이미지 처리 (flip, rotation) (0) | 2024.08.17 |