본문 바로가기
AI, 빅데이터/AI

[AI] OpenCV - 색 지정 / 선 / 도형 그리기

by Foxy현 2022. 10. 5.
728x90
반응형

안녕하세요! 오늘은 컴퓨터비전 분야에서 주로 사용하는 OpenCV 라이브러리에 대해 알아보는 시간을 갖겠습니다.

 

"OpenCV"

Open Source Computer Vision의 약자로 영상 및 동영상 처리를 할 수 있는 오픈소스 라이브러리입니다. 

주로 CCTV영상과 같은 영상 분야, 의료 분야, 로보틱스와 같은 분야에서 사용하고 있습니다.

 

사용할 수 있는 기능과 코드 사용법에 대한 튜토리얼은 아래의 링크에 들어가면 자세히 확인할 수 있습니다.

https://opencv.org/releases/

 

OpenCV의 장점

  • BSD 라이선스를 따르기 때문에, 상업적인 목적으로 사용 가능
  • 빠른 속도와 뛰어난 효율로 실시간 처리 가능

OpenCV 설치는 코랩 기준 다음 명령어를 사용합니다.

!pip install opencv-python

간단한 사용법에 대해 알아보겠습니다.

 

먼저 모듈을 import 합니다.

import cv2
from google.colab.patches import cv2_imshow

opencv를 사용하기 위해 cv2를 import합니다.

또한 구글 코랩에서는 이미지를 시각화하기 위해서 다음과 같은 cv2_imshow를 따로 import해야합니다.

 

이미지 읽어오기 / 이미지 출력하기

img = cv2.imread("/content/drive/MyDrive/content/gdrive/sample1.JPG")
cv2_imshow(img)

cv2.imread('Path')로 저장된 이미지를 불러올 수 있습니다.

 

이미지 저장하기

cv2.imwrite("/content/drive/MyDrive/content/gdrive/sample1_copy.JPG",img)

이미지에 대한 작업을 마쳤다면 이미지를 지정한 이름으로 저장할 수 있습니다.

 

색 지정

OpenCV는 색을 r,g,b순서가 아닌 b,g,r순서로 지정합니다.

bgr값이라고 따로 외우는 것이 아닌 알고있는 rgb 값에서 순서만 바꿔서 사용하시면 됩니다.

http://www.n2n.pe.kr/lev-1/color.htm

 

256 color 색상표

66FFCC R - 102 G - 255 B - 204

www.n2n.pe.kr

색상표에 대한 참고는 여기 사이트에서 하시면 될 것 같네요

 

먼저, 검은색 이미지를 나타내볼까요?

image = np.zeros((300,400,3))
cv2_imshow(image)

 

b,g,r값에는 (0,0,0)이라는 값이 들어있습니다.

그렇다면 흰색은 image값에 255를 더하면 (255,255,255)가 되어 흰색이 출력이 되겠죠?

 

다음으로 빨간색을 출력하고 싶다면?

(0,0,255)을 하면되겠네요

image = np.zeros((300,400,3))
image[:,:,2]=255
cv2_imshow(image)

이런식으로 image라는 값에 0부터 255까지의 숫자를 잘 조합해서 색을 출력하면 되겠습니다.

 

선 출력

다음으로 선을 출력해보겠습니다.

cv2.line(image,pt1,pt2,(0,0,0))
# 그림, 시작 좌표, 종료 좌표, 색, 굵기

 

사각형 출력

cv2.rectangle(image,pt3,pt4,(0,0,255),5)
# 그림, 시작 좌표, 종료 좌표, 색, 굵기

동그라미 출력

cv2.circle(image,(350,150),100,(0,0,255))
# 그림, 중심 좌표, 반지름, 색

글자 넣기

이미지에 글자를 넣을 때는 putText를 이용합니다.

image = cv2.image = np.ones((500,500,3))*200
cv2.putText(image,"Hello Foxyhyun",(130,250),cv2.FONT_HERSHEY_COMPLEX,1,(0,0,0))
cv2_imshow(image)

 

 

 

 


간단한 OpenCV조작법에 대해 다뤄보았습니다.

제가 만든 스마일 그림보고 조금이라도 미소짓길 바라면서 이번 글 마치겠습니다. 감사합니다!

728x90
반응형