OpenCV

[OpenCV] 이미지 처리 (crop)

괜찮나요닝겐 2024. 8. 17. 19:18
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
반응형