OpenCV 좌표계 변환( Top Left ↔ Bottom Left )OpenCV/OpenCV 강좌2023. 10. 21. 17:22
Table of Contents
반응형
OpenCV에서 사용하는 Top Left를 원점으로 하는 좌표와 Bottom Left를 원점으로 하는 좌표 사이에 변환을 하는 예제 입니다.
2023. 4. 29 최초작성
원점을 Bottom Left로 바꾼 후, 모서리 4군데의 좌표를 출력했습니다.
전체 코드입니다. convert_coordinate 함수를 사용하여 원점이 TOP LEFT인 좌표계와 원점이 BOTTOM LEFT인 좌표계를 서로 변환할 수 있습니다. 아래 코드에서는 원점이 BOTTOM RIGHT인 좌표를 원점이 TOP LEFT인 좌표로 변환하여 화면에 원과 좌표를 출력합니다.
import cv2 import numpy as np # TOP LEFT <-> BOTTOM LEFT def convert_coordinate(x,y): x = x y = height - y - 1 return (x,y) img = np.zeros((500,500,3), dtype=np.uint8) height,width,channel = img.shape x1,x2,x3,x4 = 0,500,500,0 y1,y2,y3,y4 = 0,0,500,500 cv2.circle(img, convert_coordinate(x1,y1), 30, (255,255,255),-1) cv2.circle(img, convert_coordinate(x2,y2), 30, (255,255,255),-1) cv2.circle(img, convert_coordinate(x3,y3), 30, (255,255,255),-1) cv2.circle(img, convert_coordinate(x4,y4), 30, (255,255,255),-1) font = cv2.FONT_HERSHEY_SIMPLEX font_scale = 1 font_thickness = 1 text_color=(0, 255, 255) offset = 70 text1 = f'1 ({x1},{y1})' text2 = f'2 ({x2},{y2})' text3 = f'3 ({x3},{y3})' text4 = f'4 ({x4},{y4})' (text2_w, text2_h), _ = cv2.getTextSize(text2, font, font_scale, font_thickness) (text3_w, text3_h), _ = cv2.getTextSize(text2, font, font_scale, font_thickness) cv2.putText(img, text1, convert_coordinate(x1+offset, y1+offset), font, font_scale, text_color, font_thickness) cv2.putText(img, text2, convert_coordinate(x2-offset-text2_w, y2+offset), font, font_scale, text_color, font_thickness) cv2.putText(img, text3, convert_coordinate(x3-offset-text3_w, y3-offset), font, font_scale, text_color, font_thickness) cv2.putText(img, text4, convert_coordinate(x4+offset, y4-offset), font, font_scale, text_color, font_thickness) cv2.imshow('test', img) cv2.waitKey(0) |
참고
https://gist.github.com/CMCDragonkai/aa36a0bcb63179624161bf2fa77bcd23
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
IOU Python 예제 코드 (0) | 2023.10.28 |
---|---|
OpenCV 강좌 C++ & Python - 원을 그리는 circle 함수 사용법 (0) | 2023.10.25 |
Homography matrix를 이용한 planar rectification - OpenCV Python 예제 (0) | 2023.10.20 |
Homography matrix를 이용한 planar rectification를 구현 예제 (0) | 2023.10.20 |
주사위 눈 개수 세는 OpenCV Python 예제 - 웹캡 영상 사용 (0) | 2023.10.20 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!