OpenCV 좌표계를 직교 좌표계로 변환하는 Python 코드OpenCV/OpenCV 강좌2023. 4. 13. 21:07
Table of Contents
반응형
OpenCV에서 사용하는 좌표계를 직교 좌표계로 변환하는 예제입니다.
2023. 4. 13 최초작성
OpenCV의 좌표계는 아래 그림처럼 왼쪽 위가 (0, 0)이고 오른쪽으로 갈수록 x좌표가 증가하며 아래로 내려갈수록 y좌표가 증가합니다.
자세한 내용은 다음 포스트를 참고하세요.
OpenCV Python 그리기 예제 1. OpenCV의 좌표계
https://webnautes.tistory.com/580
수학에서 접한 좌표계는 직교 좌표계로 보통 왼쪽 아래에 (0,0)이 주어지며 오른쪽으로 갈수록 x좌표가 증가하고, 위로 올라갈수록 y좌표가 증가합니다.
OpenCV의 좌표계를 직교 좌표계로 변환하는 코드를 간단히 작성해봤습니다. 화면 중앙에 (0,0)이 위치하며 오른쪽으로 갈 수록 x좌표가 증가하고 위로 갈수록 y좌표가 증가합니다.
실행후 화면 중앙에 보이는 파란점이 (0,0)이며 주위에 마우스로 클릭하면 해당 좌표가 출력됩니다.
전체 코드입니다.
import cv2 import numpy as np def mouse_event(event, x, y, flags, param): global cx,cy, end if event == cv2.EVENT_FLAG_LBUTTON: cx = x cy = y end = np.array((cx,cy)) img_color = np.zeros((800,800,3), dtype=np.uint8) h,w,c = img_color.shape cx=0 cy=0 img = img_color.copy() cv2.circle(img, (w//2, h//2), 10, (255, 0, 0), 2) start = np.array((w//2,h//2)) end = None while(1): if not end is None: cv2.circle(img, (cx, cy), 5, (0, 255, 0), 2) cv2.line(img, (w//2, h//2), (cx, cy), (255,255,255), 1) vector = end # 왼쪽 위가 (0,0)인 좌표계를 화면 중앙이 (0,0)이 되도록 바꾸어 줍니다. vector[0] = vector[0] - w/2 vector[1] = -vector[1] + h/2 cv2.putText(img, str(vector), (cx+10,cy+10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,255,0), 1) end = None cv2.imshow('test', img) cv2.setMouseCallback("test", mouse_event) key = cv2.waitKey(1) if key == 27: #esc key break |
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
간단히 구현한 RTSP 재접속 및 비디오 다시 재생하는 OpenCV 코드 (0) | 2023.10.07 |
---|---|
OpenCV Python 그리기 예제 1. OpenCV의 좌표계 (0) | 2023.04.13 |
OpenCV Python - 이미지를 정사각형이 되도록 패딩(padding)하는 예제 (0) | 2022.05.28 |
OpenCV Python - Image Center Crop 예제 (0) | 2022.03.06 |
Python OpenCV에서 이미지 크기 (width, height) 가져오기 (2) | 2021.11.14 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!