[python] 파이썬 OpenCV 4 Drawing 기능 (선, 사각형, 폴리곤, 문자열, ...)

 파이썬과 OpenCV 4를 활용하여 이미지 데이터에 선, 사각형, 폴리곤, 문자열 등을 출력하는 드로잉(Drawing) 기능을 테스트합니다. 사진이나 영상 데이터를 처리 후 의미있는 정보를 표시할 때 사용될 수 있습니다.


import numpy as np
import cv2 as cv

# 이미지 변수 생성
img = np.zeros((512,512,3), np.uint8)

# 5px 굵기의 대각선 그리기
cv.line(img, (0,0), (511,511), (255,0,0), 5)

# 오른쪽 상단 구석에 3px 굵기의 사각형 그리기
# top-left 좌표와 bottom-right 좌표가 필요
cv.rectangle(img, (384,0), (510,128), (0,255,0), 3)

# 이전에 그린 사각형 안에 원 그리기
# 중심 좌표와 반지름 정보 필요
# 굵기값이 -1이면 도형안을 색으로 채움
cv.circle(img, (447,63), 63, (0,0,255), -1)

# 폴리곤 그리기
# int32 자료형 정점(vertex) 좌표 리스트
pts = np.array([[10,5],[20,20],[70,20],[50,10]], np.int32)
# ROWS X 1 X 2 형태르 재배열
pts = pts.reshape((-1,1,2))
# 노란색, 닫힌(True) 폴리곤으로 설정
cv.polylines(img, [pts], True, (0,255,255))

# 문자열 출력
font = cv.FONT_HERSHEY_COMPLEX
# bottom-left 좌표, 폰트, 크기, 색상, 굵기, 라인타입 등을 설정)
cv.putText(img, 'OpenCV', (10,500), font, 4, (255,255,255), 2, cv.LINE_AA)

cv.imshow('frame', img)
cv.waitKey(0)


reshape() 함수는 하나의 차원에 대해서 -1값을 기술할 수 있습니다. -1로 기술된 차원은 매개변수로 전달된 원본 배열의 사이즈에서 자동으로 크기를 유추하게 됩니다.

아래는 실행 결과입니다.



끝.

댓글

이 블로그의 인기 게시물

[PLC] PLC 아날로그 입출력 기본

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

NPN, PNP 트랜지스터 차이점

커패시터에 저장된 에너지 계산

3선 결선식 센서의 타입 PNP, NPN

3상 모터 전력에서 전류 계산하기 (How to Convert Three-Phase Power to Amps)

[아두이노] 가변저항(Potential Divider)과 전압분배(Voltage Divider)

제너 다이오드에 저항을 연결하는 이유

[공압밸브] 5포트 2웨이 & 4포트 2웨이, 단동 VS 복동 차이점

공압 속도 제어: 미터인 vs 미터아웃