728x90

목표


  • 변환, 회전, 아핀 변환 등과 같은 다양한 기하학적 변환을 이미지에 적용한다.
  • cv.getPerspectiveTransform 기능 배우기

스케일


import numpy as np
import cv2 as cv

img = cv.imread('im.jpeg')

# res = cv.resize(img, None, fx=2, fy=2, interpolation=cv.INTER_CUBIC)

height, width = img.shape[:2]
res = cv.resize(img, (2*width, 2*height), interpolation=cv.INTER_CUBIC)
cv.imshow("res", res)

cv.waitKey(0)
cv.destroyAllWindows()

cv.INTER_AREA는 축소할때, 확대/축소인 경우는 .cv.INTER_CUBIC(느림), cv.INTER_LINEAR이다

이동


이 매트릭스를 이용하여서 이동할수 있다.

import numpy as np
import cv2 as cv

img = cv.imread('im.jpeg')
rows, cols = img.shape[:2]

M = np.float32([[1, 0, 100], [0, 1, 50]])
dst = cv.warpAffine(img, M, (cols, rows))

cv.imshow('img', dst)

cv.waitKey(0)
cv.destroyAllWindows()

위의 매트릭스를 이용하여 x 100, y 50 만큼 이동시킨방법이다.

회전


처음에 왜 저렇게 되나 싶었는데 OpenCV에서 좌표는 좌,상측이 (0,0)이라서 그렇구나 생각했다.

'언어 > OpenCV(Python)' 카테고리의 다른 글

[OpenCV]이미지 Thresholding  (0) 2022.03.27
[OpenCV]이미지의 기하학적 변환(2)  (0) 2022.03.25
[OpenCV]색공간 변경  (0) 2022.03.23
[OpenCV]이미지 연산  (0) 2022.03.22
[OpenCV]이미지의 기본연산  (0) 2022.03.21