일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dacon
- Real or Not? NLP with Disaster Tweets
- 캐치카페
- 파이썬
- leetcode
- 데이콘
- PYTHON
- Baekjoon
- github
- AI 경진대회
- 자연어처리
- Docker
- SW Expert Academy
- 편스토랑 우승상품
- gs25
- 백준
- 프로그래머스
- 코로나19
- 금융문자분석경진대회
- hackerrank
- ubuntu
- 우분투
- 편스토랑
- 프로그래머스 파이썬
- 더현대서울 맛집
- programmers
- 맥북
- Kaggle
- Git
- ChatGPT
- Today
- Total
솜씨좋은장씨
[Python] OpenCV를 활용하여 도형을 그리는 다양한 방법! 본문
이 글에서는 opencv를 활용하여 도형을 그리는 방법에 대해서 적어보려합니다.
0. opencv 설치하고 import 하기
$ pip install opencv-python
import cv2
1. 선 그릴 이미지 불러오기 or 흰 바탕 만들기
1-1. 이미지 불러오기
background_img = cv2.imread("./filename.png")
cv2의 imread를 활용하여 이미지를 불러옵니다.
1-2. 흰 바탕 만들기
먼저 numpy를 설치합니다.
$ pip install numpy
흰 바탕은 numpy의 zeros를 활용하여 만들어줍니다.
import numpy as np
설치한 numpy를 import 하고
background_img = np.zeros(shape=(500, 300, 3), dtype=np.uint8) + 255
numpy의 zeros를 활용하여 0으로 채워진 다차원 배열을 만들어줍니다.
2. 원하는 색 값 설정하기
기본적으로 R, G, B 값 이 세가지 값을 조합하여 여러가지 색조합을 만듭니다.
색조합을 만들때 ( 파랑, 초록, 빨강 ) ( B, G, R ) 순서로 값을 설정합니다.
각 값은 0 ~ 255 사이의 값을 가집니다.
blue_color = (255, 0, 0)
green_color = (0, 255, 0)
red_color = (0, 0, 255)
3. 선 그리기
선 그리기는 cv2라이브러리의 line를 활용하여 그립니다.
line_img = cv2.line(img=background_img, pt1=(10, 10), pt2=(200, 200), color(0, 0, 255), thickness=2)
만약 내가 (10, 10) 위치에서 (200, 200) 까지 이어지는 2 두께의 파란색 선을 그린다! 하면 위와 같습니다.
line에 들어가는 변수를 하나씩 살펴보면 다음과 같습니다.
구분 | img | pt1 | pt2 | color | thickness |
내용 | 이미지 | 선의 좌측 점 | 선의 우측 점 | 색 ( B, G, R ) | 선의 두께 |
4. 사각형 그리기
사각형 그리기는 cv2라이브러리의 rectangle을 활용하여 그립니다.
rectangle_img = cv2.rectangle(img=background_img, pt1=(10, 10), pt2=(200, 200), color=(255, 0, 0), thickness=1)
만약 좌측 위 꼭지점이 (10, 10) 위치 우측 아래 꼭지점이 (200, 200) 까지 이어지는
190 X 190 크기 2 두께의 파란색 선을 그린다! 하면 위와 같습니다.
rectangle에 들어가는 변수를 하나씩 살펴보면 다음과 같습니다.
구분 | img | pt1 | pt2 | color | thickness |
내용 | 이미지 | 사각형의 왼쪽 위점 | 사각형의 우측 아래점 | 색 ( B, G, R ) | 선의 두께 |
TypeError: rectangle() missing required argument 'rec' (pos 2)
위와 같은 오류가 발생하면 아래의 링크를 참고해주세요.
5. 원 그리기
원 그리기는 cv2라이브러리의 circle을 활용하여 그립니다.
circle_img = cv2.circle(img=background_img, center=(100, 100), radius=50, color=(0, 0, 255), thickness=2)
만약 중심점이 (10, 10) 위치 반름이 50이면서 두께가 2인 파란색 선을 그린다! 하면 위와 같습니다.
circle 에 들어가는 변수를 하나씩 살펴보면 다음과 같습니다.
구분 | img | center | radius | color | thickness |
내용 | 이미지 | 원의 중심점 | 반지름 | 색 ( B, G, R ) | 선의 두께 |
opencv를 활용하여 이미지 위에 다양한 도형을 그리는 방법을 정리해 보았습니다.
앞으로 선이나 박스를 추출하는 방법에 대해서도 정리해보고자 합니다.
읽어주셔서 감사합니다.