OpenCV Python 강좌 – Perspective TransformationOpenCV/OpenCV 강좌2023. 10. 12. 20:58
Table of Contents
반응형
warpPerspective 함수를 사용하여 퍼스펙티브 변환(Perspective Transformation)을 구현합니다.
퍼스펙티브 변환에서 원본 이미지의 모든 직선은 출력 이미지에서 직선으로 유지됩니다.
퍼스펙티브 변환 행렬을 찾으려면 입력 이미지의 4점과 대응하는 출력 이미지의 4점이 필요합니다.
getPerspectiveTransform 함수를 사용하면 대응하는 4점 쌍에 대한 변환 행렬을 구할 수 있습니다.
warpPerspective 함수를 사용하여 변환을 실행합니다.
마지막 업데이트 - 2018. 10. 4
다음 순서대로 책의 모서리를 클릭합니다.
클릭한 책 모서리에 빨간점이 찍히게 됩니다.
스페이스바를 누르면 정면에서 바라본 책의 이미지로 변환된 이미지가 보입니다.
테스트에 사용한 원본 이미지와 전체 코드입니다.
import numpy as np import cv2 point_list = [] count = 0 def mouse_callback(event, x, y, flags, param): global point_list, count, img_original # 마우스 왼쪽 버튼 누를 때마다 좌표를 리스트에 저장 if event == cv2.EVENT_LBUTTONDOWN: print("(%d, %d)" % (x, y)) point_list.append((x, y)) print(point_list) cv2.circle(img_original, (x, y), 3, (0, 0, 255), -1) cv2.namedWindow('original') cv2.setMouseCallback('original', mouse_callback) # 원본 이미지 img_original = cv2.imread('test3.png') while(True): cv2.imshow("original", img_original) height, width = img_original.shape[:2] if cv2.waitKey(1)&0xFF == 32: # spacebar를 누르면 루프에서 빠져나옵니다. break # 좌표 순서 - 상단왼쪽 끝, 상단오른쪽 끝, 하단왼쪽 끝, 하단오른쪽 끝 pts1 = np.float32([list(point_list[0]),list(point_list[1]),list(point_list[2]),list(point_list[3])]) pts2 = np.float32([[0,0],[width,0],[0,height],[width,height]]) print(pts1) print(pts2) M = cv2.getPerspectiveTransform(pts1,pts2) img_result = cv2.warpPerspective(img_original, M, (width,height)) cv2.imshow("result1", img_result) cv2.waitKey(0) cv2.destroyAllWindows() |
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
이미지에서 텍스트 영역을 찾아주는 OpenCV Python의 MSER 예제 (0) | 2023.10.13 |
---|---|
OpenCV Python - webcam에서 가져온 영상을 mp4로 저장하는 예제 (0) | 2023.10.13 |
OpenCV Python 강좌 – 이미지 이동 / 회전 하기 (0) | 2023.10.12 |
OpenCV Python 강좌 – 이미지 확대/축소 resize 함수 (0) | 2023.10.12 |
OpenCV에서 cudacodec 사용하도록 빌드하기 (0) | 2023.10.11 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!