OpenCV-Python

OpenCV Python 이미지 영상 확대 축소

rkftks22 2021. 8. 23. 19:14

cv2.resize(src, dsize [, dst [, fx [, fy [, interpolation]]]]) [] : 생략 가능

import cv2

img = cv2.imread("imgs/Lenna.png")  # 이미지 불러오기

# height, width, channel = img.shape
# print(f'width : {width}, height : {height}, channel : {channel}')

dst = cv2.resize(img, dsize=(0, 0), fx=1.5, fy=1.5)
dst2 = cv2.resize(img, dsize=(500, 500))

dst3 = cv2.resize(img, dsize=(840, 720))


cv2.imshow("Lenna", img)
cv2.imshow("dst", dst)
cv2.imshow("dst2", dst2)
cv2.imshow("dst3", dst3)

cv2.waitKey() 
cv2.destroyAllWindows()

src : 입력 영상

dsize : 결과 영상 크기. (w, h) - (0,0)이면 fx, fy값 이용하여 결정

dst : 출력 영상

fx, fy : x와 y방향 스케일 비율(dsize값 0일 때 유효)

interpolation : 보간법 지정(기본값 : cv2.INTER_LINEAR) 

  • cv2.INTER_NEAREST : 최근방 이웃 보간법(비추!) 속도↑↑ 품질↓
  • cv2.INTER_LINEAR : 양선형 보간법(2x2 이웃 픽셀 참조) 속도↑ 품질↓
  • cv2.INTER_CUBIC : 3차회선 보간법(4x4 이웃 픽셀 참조) 속도 품질↓
  • cv2.INTER_LANCZOS4 : Lanczos 보간법(8x8 이웃 픽셀 참조) 속도 품질
  • cv2.INTER_AREA : 영상 축소 시 효과적
height, width, channel = img.shape
print(f'width : {width}, height : {height}, channel : {channel}')

자신이 불러온 이미지 원본 크기가 궁금하신 분들은 위의 코드 부분을 주석을 풀고 실행시켜보시기 바랍니다.