1. OpenCV (Open Source Computer Vision Library)
ㅇ 컴퓨터 비전용 오픈소스
- (실시간 컴퓨터 비전,영상 처리 등)
. (이미지,비디오 처리, 물체 검출, 얼굴 인식, 모션 추적 등)
ㅇ 포함
- (주로, 컴퓨터 비전 및 머신러닝 라이브러리 포함)
- 기본적인 영상 파일 입출력, 처리 이외에도,
- 영상 화질 향상, 객체 검출과 인식,추적, 3차원 비전 문제 해결 등과,
- 머신러닝 (kNN, SVM 등), 딥러닝 (DNN 등) 알고리즘들을 포함
- 약 2,500개가 넘는 영상 처리 알고리즘이 최적화되어서 포함되어 있음
ㅇ 특징
- 실시간 처리 고려
. (매우 빠른 수행)
- 다양한 운영체제 환경 가능
. (데스크톱 : 리눅스,애플,윈도우즈, 모바일 : iOS,안드로이드)
- 폭넓은 언어 사용을 위한 인터페이스 제공
. (C/C++, Java, MATLAB, Python, Javascript 등)
- GPU 활용 지원
. (CUDA, OpenCL에 의함)
- BSD 오픈 소스 라이선스를 따름
. (연구용,상업용 모두 활용 용이)
ㅇ 역사
- 1999년, Intel社에서 개발한 IPL을 기반으로 제작
- 2000년, 수학적인 기능들과 영상 처리 기능들을, 라이브러리 형태로 제작 공개
- 2006년, OpenCV 1.0
- 2009년, OpenCV 2.0
- 2015년, OpenCV 3.0
- 2018년, OpenCV 4.0
ㅇ 공식 웹사이트 : OpenCV 홈페이지
2. OpenCV 구성
※ OpenCV 라이브러리는 다양한 모듈로 구성됨
ㅇ Core Module : 기본 데이터 구조와 수학적 도구를 제공
ㅇ Image Processing Module : 필터링, 색상 변환, 히스토그램 계산 등 기본 이미지 처리 기능
ㅇ Video Module : 비디오 입출력 및 모션 분석
ㅇ Object Detection Module : 물체 검출 (얼굴, 눈, 신체 등)
ㅇ Machine Learning Module : SVM, kNN, Decision Trees 등 머신러닝 알고리즘 제공
ㅇ Deep Learning Module (DNN) : OpenCV에서 딥러닝 모델을 로드하고 실행할 수 있도록 지원
ㅇ 3D Vision Module : 스테레오 매칭, 3D 재구성 등
3. OpenCV 파이썬 모듈 : cv2
ㅇ 특징
- 파이썬 인터페이스 제공으로 사용이 간단
- OpenCV의 모든 기능을 Python에서 사용 가능
ㅇ 例)
- 파이썬 cv2 모듈 임포트 : import cv2
- 이미지 읽기 : image = cv2.imread("image.jpg")
- 이미지 표시
. cv2.imshow("Image", image)
. cv2.waitKey(0)
. cv2.destroyAllWindows()
- 이미지 저장 : cv2.imwrite("output.jpg", image)
ㅇ 설치 명령 : pip install opencv-python
- (pip install opencv-python-headless # GUI 없이 사용)