cv2.warpPerspective
함수는 이미지의 투시 변환(perspective transformation)을 수행할 때 사용cv2.getPerspectiveTransform
함수를 사용해 4개의 대응하는 점(source points와 destination points)을 기반으로 3x3 변환 행렬(M)을 계산cv2.warpPerspective
에 적용하여 이미지를 변환다음은 cv2.warpPerspective
를 사용하는 간단한 예제입니다.
import cv2
import numpy as np
# 이미지 로드
image = cv2.imread('path_to_your_image.jpg')
# 소스 이미지에서 4개의 점 선택 (예: 이미지의 네 귀퉁이)
pts_src = np.array([[0, 0], [image.shape[1] - 1, 0], [image.shape[1] - 1, image.shape[0] - 1], [0, image.shape[0] - 1]], dtype='float32')
# 목표 이미지에서 대응하는 4개의 점 선택
pts_dst = np.array([[50, 50], [image.shape[1] - 100, 50], [image.shape[1] - 50, image.shape[0] - 100], [50, image.shape[0] - 50]], dtype='float32')
# 변환 행렬 계산
M = cv2.getPerspectiveTransform(pts_src, pts_dst)
# 투시 변환 적용
warped_image = cv2.warpPerspective(image, M, (image.shape[1], image.shape[0]))
# 결과 이미지 표시
cv2.imshow('Warped Image', warped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.warpPerspective
함수는 이미지의 투시 변환을 수행하는 데 사용되며, 다음과 같은 주요 파라미터를 가집니다:
cv2.getPerspectiveTransform
함수를 사용하여 계산된 행렬을 입력으로 사용합니다.dsize
는 이 배열의 크기와 일치해야 합니다.cv2.INTER_LINEAR
(기본값), cv2.INTER_NEAREST
, cv2.INTER_CUBIC
등이 있습니다.cv2.BORDER_CONSTANT
(경계를 일정한 값으로 채움), cv2.BORDER_REPLICATE
(가장자리 픽셀을 복제), cv2.BORDER_REFLECT
(경계를 반사) 등이 있습니다.borderMode
가 cv2.BORDER_CONSTANT
일 때 사용되는 색상 값입니다. 튜플 형태로 RGB 색상을 지정할 수 있습니다. 기본값은 0 (검은색)입니다.이러한 파라미터를 적절히 조합하여 사용하면, 다양한 투시 변환 효과를 이미지에 적용할 수 있습니다. 예를 들어, 이미지의 특정 부분을 강조하거나, 객체의 왜곡을 수정하는 등의 작업에 유용하게 사용됩니다.