안녕하세요! 오늘은 컴퓨터비전 분야에서 주로 사용하는 OpenCV 라이브러리에 대해 알아보는 시간을 갖겠습니다.
"OpenCV"
Open Source Computer Vision의 약자로 영상 및 동영상 처리를 할 수 있는 오픈소스 라이브러리입니다.
주로 CCTV영상과 같은 영상 분야, 의료 분야, 로보틱스와 같은 분야에서 사용하고 있습니다.
사용할 수 있는 기능과 코드 사용법에 대한 튜토리얼은 아래의 링크에 들어가면 자세히 확인할 수 있습니다.
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
색상표에 대한 참고는 여기 사이트에서 하시면 될 것 같네요
먼저, 검은색 이미지를 나타내볼까요?
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조작법에 대해 다뤄보았습니다.
제가 만든 스마일 그림보고 조금이라도 미소짓길 바라면서 이번 글 마치겠습니다. 감사합니다!
'AI > AI' 카테고리의 다른 글
[OpenCV] 이미지 마스킹 기초 (2) | 2022.10.12 |
---|---|
[AI] OpenCV - 이미지 트리밍 / 변환 (3) | 2022.10.05 |
[AI] Linear Regression 직접 구현 / 라이브러리 이용하여 구현 (1) | 2022.09.28 |
신호 그래프의 Feature 값 표현하기 (0) | 2022.09.28 |
[AI 개념 다지기] Activation Function(Sigmoid) (0) | 2022.08.03 |