[python] OpenCV를 사용하여 이미지 크기 조정하기

이미지 처리 작업을 수행할 때 종종 이미지의 크기를 조정해야 할 때가 있습니다. 이를 위해 Python의 OpenCV 라이브러리를 사용할 수 있습니다. OpenCV는 이미지 처리 및 컴퓨터 비전 작업에 매우 유용한 도구입니다.

이미지 크기 조정 기능

이미지 크기 조정을 위해 OpenCV의 resize() 함수를 사용할 수 있습니다. 이 함수는 원하는 크기로 이미지를 조정하는 데 사용됩니다. 다음은 resize() 함수의 사용 예시입니다.

import cv2

# 이미지 파일을 읽어옴
image = cv2.imread('input.jpg')

# 원하는 크기로 이미지를 조정
resized_image = cv2.resize(image, (800, 600))

# 크기가 조정된 이미지를 파일로 저장
cv2.imwrite('output.jpg', resized_image)

위의 코드에서 cv2.imread() 함수를 사용하여 이미지 파일을 읽어옵니다. cv2.resize() 함수는 첫 번째 인자로 조정할 이미지를, 두 번째 인자로 원하는 크기를 입력받습니다. 그리고 cv2.imwrite() 함수로 크기가 조정된 이미지를 파일로 저장합니다.

이미지 비율 유지하기

위의 코드 예시에서는 이미지 크기를 직접 지정했습니다. 그러나 때로는 이미지의 가로 세로 비율을 유지하면서 크기를 조정해야 할 때도 있습니다. 이를 위해 resize() 함수의 interpolation 파라미터를 사용할 수 있습니다. 예시 코드는 아래와 같습니다.

import cv2

# 이미지 파일을 읽어옴
image = cv2.imread('input.jpg')

# 원하는 너비를 기준으로 이미지 비율을 유지하면서 조정
desired_width = 800
ratio = desired_width / image.shape[1]
resized_image = cv2.resize(image, (desired_width, int(image.shape[0] * ratio)))

# 크기가 조정된 이미지를 파일로 저장
cv2.imwrite('output.jpg', resized_image)

위의 코드에서 desired_width 변수는 원하는 이미지 너비를 나타냅니다. 이미지의 가로 세로 비율을 유지하기 위해 ratio 변수에 너비 비율을 계산합니다. 그리고 cv2.resize() 함수의 두 번째 인자로 조정할 너비와 높이를 입력할 때 int(image.shape[0] * ratio)와 같이 이미지 높이에 비율을 곱해줍니다.

이제 OpenCV를 사용하여 이미지 크기를 조정하는 방법을 알게 되었습니다. 다양한 이미지 처리 작업을 수행할 때 이 기능을 활용하여 사용하면 효과적일 것입니다.

참고 자료