반응형
이미지의 사이즈를 변환하는 경우가 있다.
사이즈를 변환하는 방법은 cv2 resize를 통해 변환을 할 수 있다.
img = cv2.imread('img/input.jpg')
img_scaled = cv2.resize(img,None,fx=1.2,fy=1.2,interpolation=cv2.INTER_LINEAR) # fx: 가로 사이즈의 배수
cv2.imshow('Scaling - Linear Interpolation',img_scaled)
img_scaled2 = cv2.resize(img,None,fx=1.2,fy=1.2,interpolation = cv2.INTER_CUBIC)
cv2.imshow('Scaling - Cubic Interpolation',img_scaled2)
img_scaled3 = cv2.resize(img,(450,400),interpolation = cv2.INTER_AREA) # Change manual size
cv2.imshow('Scaling - Skewed Sized',img_scaled3)
cv2.waitKey()
cv2.destroyAllWindows()
cv2 resize의 파라미터는 (이미지,(직접 지정할 크기), fx=현재 이미지 가로의 몇배, fy, = 현재 이미지 세로의 몇배, 보간법) 으로 구성되어있다. 즉img_scaled resize크기는 직접 지정을 안했으므로 직접 지정할 크기에서 None을 넣어주고 fx = fy = 1.2를 하였기 때문에 원래 이미지 가로세로 길이의 1.2배를 해준 size가 반환된다.
img_scaled3의 resize 크기는 450,400으로 직접 지정하였으므로 450,400의 사이즈가 반환된다.
그리고 interpolation 옵션에 대해서 설명하겠다.
사이즈가 변하면 pixel사이의 값을 결정을 해야 하는데 이때 사용하는 것을 보간법(Interpolation method)이라고 한다.
많이 사용되는 방법으로 3가지 방법이 있다.
- cv2.INTER_CUBIC : 바이큐빅 보간법 - when : 사이즈를 늘릴 때 (LINEAR보다 속도가 느림)
- cv2.INTER_LINEAR : 쌍선형 보간법 - when : 사이즈를 늘릴 때(default)
- cv2.INTER_AREA : 영역 보간법 - when : 사이즈를 줄일 때
반응형
'OpenCV' 카테고리의 다른 글
OpenCV - Image Warpping (0) | 2020.10.11 |
---|---|
OpenCV - 어파인 변환 및 투상 변환 (0) | 2020.10.10 |
OpenCV - 이미지의 이동 및 회전 (0) | 2020.10.10 |
cv2.imshow를 matplotlib로 구현 (0) | 2020.09.03 |
OpenCV - 색 변경 (0) | 2020.09.03 |
댓글