
imagescale 함수는 OpenCV에서 제공하는 이미지 스케일링 함수입니다. 이 함수를 사용할 때는 두 가지 중요한 파라미터가 있습니다. 하나는 원본 이미지의 크기, 다른 하나는 스케일링된 이미지의 크기입니다.
resize 함수와의 차이점은 resize 함수는 이미지의 크기를 조정할 때 aspect ratio을 유지하지 않습니다. 반면 imagescale 함수는 aspect ratio을 유지합니다.
interpolation 방법은 스케일링된 이미지의 품질을 결정하는 중요한 요소입니다. OpenCV에서는 다음과 같은 interpolation 방법을 제공합니다.
- cv2.INTER_NEAREST: 가장 빠른 방법으로 스케일링을 하지만 품질이 가장 낮은 방법입니다.
- cv2.INTER_LINEAR: 가장 일반적으로 사용되는 방법으로 스케일링을 합니다. 품질이 좋고 속도가 빠른 방법입니다.
- cv2.INTER_CUBIC: 품질이 좋고 속도가 느린 방법입니다.
- cv2.INTER_AREA: 이미지의 크기를 줄일 때 사용하는 방법으로 속도가 빠른 방법입니다.
aspect ratio을 유지하는 방법은 imagescale 함수의 파라미터인 fx와 fy를 사용합니다. fx는 x축의 스케일링 비율, fy는 y축의 스케일링 비율을 의미합니다. 두 파라미터를 동일하게 설정하면 aspect ratio을 유지할 수 있습니다.
예를 들어, 원본 이미지의 크기가 100x100이면, 스케일링된 이미지의 크기가 200x200이면 fx와 fy를 2로 설정하면 aspect ratio을 유지할 수 있습니다.
#hostingforum.kr
python
import cv2
# 원본 이미지 읽기
img = cv2.imread('image.jpg')
# 스케일링된 이미지 크기
width = 200
height = 200
# aspect ratio 유지
fx = width / img.shape[1]
fy = height / img.shape[0]
# imagescale 함수 사용
scaled_img = cv2.resize(img, (width, height), fx=fx, fy=fy, interpolation=cv2.INTER_LINEAR)
# 스케일링된 이미지 표시
cv2.imshow('Scaled Image', scaled_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
이 코드는 원본 이미지를 스케일링하고 aspect ratio을 유지하는 예제입니다. imagescale 함수를 사용하여 스케일링된 이미지를 생성하고, aspect ratio을 유지하는 방법을 보여줍니다.
2025-08-02 11:18