본문 바로가기

자바, 파이썬

[자바, 파이썬] OpenCV

OpenCV

컴퓨터 비전(Compute Vision) 라이브러리. 이미지, 동영상를 가공하는 게 가능하다.

 

 

추가 

  • Tesseract-OCR: 이미지로부터 문자를 인식하고 추출하는 엔진. 영어 외 언어는 그 언어의 훈련 데이터를 받아 사용.
  • PyTesseract: Tesseract-OCR를 사용하는 파이썬 라이브러리. Tesseract-OCR 설치 후 사용 가능.
  • Mediapipe:얼굴, 포즈, 손 등 감지 라이브러리
  • Tensorflow: OpenCV와 연계하여 머신러닝 가능


자동차 번호판 인식의 경우


파이썬

// 이미지는 넘파일 객체로 표현

import cv2

img = cv2.imread(읽을 이미지 파일, 읽기 옵션)	
// IMREAD_COLOR: 컬러로 읽기, IMREAD_GRAYSCALE(기본): 흑백으로 읽기, IMREAD_UNCHANGED:컬러로 읽고 불투명도도 읽기
// (행,열,BGR 색상) 넘파이 객체 반환

img.shape // (세로, 가로, 채널 개수) 채널: RGB (+불투명도) 

cv2.imshow(열릴 창 제목, img)

cv2.imwrite(적힐 파일 이름, img)

cv2.waitKey(기다릴 시간)	// 0이면 OpenCV 창에서 입력 받을 때까지 기다리기. 입력을 반환
if cv2.waitKey() == 10:
if cv2.waitKey() == ord('q'):

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)	// 사진 흑백 변환

cv2.namedWindows(열릴 창 제목, 옵션)	// cv2.WINDOW_AUTOSIZE(기본): 창을 사진 크기에 맞추기, cv2.WINDOW_NORMAL: 사진을 창 크기에 맞추기. 창 크기 변경 가능

cv2.destoryAllWindows()
cv2.destoryWindow(닫을 창 이름)

cv2.moveWindow(움직일 창 이름, x, y)

cv2.resizeWindow(크기 변경할 창 이름, w, h)	// cv2.WINDOW_NORMAL을 사용했을 시
import matplotlib.pyplot as plt

// OpenCV는 BGR, Matplotlib은 RGB. OpenCV로 이미지 읽고 Matplotlib으로 보이려면 변환 필요

// 사진 컬러로 보이기
img = cv2.imread(읽을 이미지 파일, cv2.IMREAD_COLOR)	// 컬러로 읽기
plt.axis("off")
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))	// 컬러로 보이기
plt.show()

// 사진 흑백으로 보이기
img = cv2.imread(읽을 이미지 파일, cv2.IMREAD_GRAYSCALE)
plt.axis("off")
plt.imshow(img, cmap="gray")
plt.show()

// 사진 2개 나란히 보이기
plt.subplot(121)
plt.axis("off")
plt.imshow(이미지1)
plt.subplot(122)
plt.axis("off")
plt.imshow(이미지2, cmap="gray")
plt.show()
from google.colab import files
uploaded = files.upload()	// 구글 코랩에 이미지 업로드

동영상 출력

video = cv2.VideoCapture("파일 이름")

카메라 출력

 

도형 그리기

 

영상 icon by Icons8Shape icon by Icons8Scissor icon by Icons8Black Hole icon by Icons8넓히다 icon by Icons8, Shadow Of Man icon by Icons8