[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) 계산하기 (직류, 교류 단상, 교류 삼상)

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

[PLC] 채터링 현상과 입력 필터

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

[python] 파이썬 pyplot 2차원 그래프 샘플 코드

[PLC] 래더 다이어그램과 PLC

공압회로 기호

[PLC] PLC 입출력 타입 - 싱크 & 소스 (Sink & Source)

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