OpenCV는 다양한 이미지 처리가 가능합니다.

자르기, 상하 좌우대칭, 블러처리, 회전, 이동, 색상 변환 ,필터, 히스토그램 변환등 많은 기능들이 있지 대표적인 전처리 리사이즈, 자르기, 블러만 다루도록 하겠습니다.

자르기

image.png

OpenCV를 이용하여 이미지를 자르고 확대하고 자를 수도 있습니다.

자르는 이유는 무엇일까요? 자르기는 이미지에서 원하지 않은 영역이나 객체를 제거하기 위해 수행됩니다. 또는 이미지의 특정 부분을 강조하기 위해 수행됩니다.

OpenCV를 사용하여 이미지를 자르는데 필요한 특정 함수는 없으며, NumPy 배열 슬라이싱을 통해 이를 수행합니다. 자를 영역의 높이와 너비(픽셀 단위)를 지정하기만 하면 됩니다.

OpenCV/NumPy에서 인덱스는 이렇게 해석됩니다:

img[세로 범위, 가로 범위]

즉, img[y1:y2, x1:x2] 형식입니다.

cropped_image = img[80:280, 150:330]

자르게 됩니다.

코드로 구현해보겠습니다.

import cv2
import numpy as np

img = cv2.imread(r"C:\\Users\\danny\\Desktop\\Even rock bottom is rock.png")
print(img.shape) # Print image shape
cv2.imshow("original", img)
 
# Cropping an image
cropped_image = img[80:280, 150:330]
 
# Display cropped image
cv2.imshow("cropped", cropped_image)
 
# Save the cropped image
cv2.imwrite("Cropped Image.jpg", cropped_image)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

image.png