728x90
import cv2
import numpy as np
#사진 돌리기
#이미지 임포트
is_src = cv2.imread('data/images/book2.jpg')
#좌표를 하드코딩으로 설정해준다.
point_src = np.array( [141,131,480,159,493,630,64,601], dtype=float)
#행렬로 변경
point_src = point_src.reshape(4,2)
print(point_src)
#바꿔줄 이미지 사진
img_dst = cv2.imread('data/images/book1.jpg')
#바꿔줄 이미지 사진의 좌표값과 행렬처리
point_dst = np.array( [318,256,534,372,316,670,73,473], dtype=float )
point_dst = point_dst.reshape(4,2)
print(point_dst)
# h는 변환에 사용될 3*3 행렬이다.
h, status = cv2.findHomography(point_src, point_dst)
img_output = cv2.warpPerspective( is_src , h, (img_dst.shape[1], img_dst.shape[0] ) )
cv2.imshow('SRC', is_src)
cv2.imshow('DST', img_dst)
cv2.imshow('Warp', img_output)
cv2.waitKey(0)
cv2.destroyALLWindow()
728x90
'OpenCV' 카테고리의 다른 글
virtual Bilbord(빌보드 전광판 사진 바꾸기) (0) | 2021.04.20 |
---|---|
perspective Correction(클릭해서 이미지 추출) (0) | 2021.04.20 |
rotate / warpAffine/ getAffine 이미지 돌리기 (0) | 2021.04.20 |
opening, closing (0) | 2021.04.20 |
erode 이미지 침식 (0) | 2021.04.20 |