먼저 필요한 opencv를 import 해줍니다.
import cv2
import numpy as np
from numpy.matrixlib import matrix
image = cv2.imread('data/images/book2.jpg')
cv2.imshow('original',image)
#원본 이미지의 4개의 좌표
point_original = np.array([141,131,480,159,493,630,64,601],dtype=float)
point_original = point_original.reshape(4,2)
print(point_original)
#다른 이미지 불러와서, 위의 원본이미지 4개 점의 좌표와 매칭되는 점의 좌표도 세팅
image_dst = cv2.imread('data/images/book1.jpg')
cv2.imshow('dst',image_dst)
point_dst = np.array([318,256,534,372,316,670,73,473],dtype=float)
point_dst = point_dst.reshape(4,2)
print(point_dst)
#두 이미지의 서로 매칭되는 4개의 점이 있으니까 이 점들의 정보를 가지고 행렬을 구할수 있습니다
matrix,status = cv2.findHomography(point_original,point_dst)
#행렬을 구했으면, 이미지를 처리할 수 있습니다.
result = cv2.warpPerspective(image,matrix,(image.shape[1],image.shape[0]))
cv2.imshow('Warp',result)
cv2.waitKey(0)
cv2.destroyAllWindows()
가장 왼쪽 사진을 가운데 다른각도 사진처럼 변환
'OpenCV' 카테고리의 다른 글
Python(파이썬)에서 OpenCV를 이용해 virtual billboard 예제 풀이 잘라내고 합성하기 (0) | 2022.01.11 |
---|---|
Python(파이썬)에서 OpenCV를 이용해 perspective correction 사진 교정하기 (0) | 2022.01.11 |
Python(파이썬)에서 OpenCV를 이용해 Thresholding 이미지 임계처리 하기 (0) | 2022.01.11 |
Python(파이썬)에서 OpenCV를 이용해 이미지 회전하기 (0) | 2021.12.31 |
Python(파이썬)에서 OpenCV를 이용해 이미지 closing 검은색 노이즈 없애기 (0) | 2021.12.31 |