1. 목표
- opencv로 기하학적 형태를 그리는 방법에 대해서 배워봅시다.
- 여기서 다음의 함수들을 배워보겠습니다.
ex) cv2.line(), cv2.circle(), cv2.rentagle(). cv2.ellipse(), cv2.putText()
2. 코드 개요
- 위 함수들을 사용해보기 전에 일반적으로 사용되는 매개변수들에 대한 설명들을 하겠씁니다.
- img : 드로잉을 할 이미지(그림) 파일을 의미합니다.
- color : 색상 값을 BGR 형태로 입력해 줍니다.(명시하지 않으면 하나의 튜플, 즉 그레이스케일로 지정됩니다.)
예를 들어 (255, 0, 0)을 하면 파란 색이나오고, 그레이 스케일을 사용한다면 스칼라 값 하나를 적어주면 되겠습니다
- thickness 두께 : 두께는 원이나 선의 두꼐를 의미합니다. 기본 값은 1
- lineType : 선의 특징을 지정하며, 8연결성이나 안티에일리어싱 같은게 있습니다. 기본 값은 8연결성으로,
cv2.LINE_AA를 줄 경우 곡선에서 더 보기 좋게 만들어 집니다.
* 안티 에일리어싱 : 계단현상 방지기능
https://namu.wiki/w/%EC%95%88%ED%8B%B0%EC%97%90%EC%9D%BC%EB%A6%AC%EC%96%B4%EC%8B%B1
3. 선 그리기
선을 그리려면 시작점과 끝점을 지정해주면 됩니다.
1. 우선 검은색 영상을 생성해주고
2. 왼쪽 위에서 오른쪽 아래까지 파란 선을 그려주겠습니다.
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
# Draw a diagonal blue line with thickness of 5 px
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
파일 명 : 01_drawline.py
4. 사각형 그리기
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
파일명 : 02_drawrectangle.py
- 왼쪽 위 코너와 오른쪽 아래 코너, 색상과 두께를 지정해주면 만들어 집니다.
- 이번 예제는 녹색 상자로 두께가 3
5. 원을 그려보자
원을 그리려면 원의 중심과 반지름을 명시해주면 됩니다. 추가로 색상과 두께를 지정해주면 그려지는데 이번 경우에는 두께자리에 -1을 주어 원안을 빨간색으로 채우겠습니다.(BGR 모델)
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
img = cv2.circle(img,(447,63), 63, (0,0,255), -1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
파일명 : 03draw_circle.py
'로봇 > 영상' 카테고리의 다른 글
opencv-python 튜토리얼 - 6. 트랙바를 컬러 팔레트로 사용해보기 (0) | 2020.08.10 |
---|---|
opencv-python 튜토리얼 - 5. 마우스를 패인트 브러쉬로 사용하기 (0) | 2020.08.10 |
opencv-python 튜토리얼 - 3. 호랑나비 돌려보기 (0) | 2020.08.10 |
opencv-python 튜토리얼 - 2. 이미지로 시작하기 (0) | 2020.08.10 |
opencv-python 튜토리얼 - 1. 소개 (1) | 2020.08.10 |