OpenCV
개요
OpenCV(Open Source Computer Vision)은 주로 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리이다.
원래는 인텔이 개발하였으나 현재는 손을 뗀 상태다.
실시간 이미지 프로세싱에 중점을 둔 라이브러리이다.
인텔CPU에서 사용되는 경우 속도의 향상을 볼 수 있는 IPP(Intel Performance Primitives)를 지원한다.
이 라이브러리는 윈도, 리눅스 등에서 사용 가능한 크로스 플랫폼이며 오픈소스 BSD 허가서 하에서 무료로 사용할 수 있다.
OpenCV는 TensorFlow , Torch / PyTorch 및 Caffe의 딥러닝 프레임워크를 지원한다.
영상 관련 라이브러리로서 사실상 표준의 지위를 가지고 있다.
조금이라도 영상처리가 들어간다면 필수적으로 사용하게 되는 라이브러리.
기능이 방대하기 때문에 OpenCV에 있는 것만 다 쓸 줄 알아도 영상처리/머신러닝의 고수 반열에 속하게 된다.
응용 기술의 예
인간과 컴퓨터 상호 작용 (HCI)
인간-컴퓨터 상호작용의 기본 목적은 컴퓨터를 좀 더 인간에게 쉽고 쓸모 있게 함으로써 인간과 컴퓨터 간의 상호작용을 개선하는 것이다. 좀 더 광범위하게는 아래와 같은 관심분야가 있다.
인터페이스를 설계하는 방법론이나 절차의 개발 (예를 들어, 주어진 사용자 군이나 주어진 조건에 부합하여 최적화된 인터페이스를 설계하는 것)
인터페이스를 구현하는 방법론 (예를 들어, 소프트웨어 툴킷이나 라이브러리, 보다 나은 알고리즘의 개발)
인터페이스를 비교 평가하는 방법
새로운 인터페이스나 상호 작용 기술의 개발
상호작용을 설명하고 예측하는 모델이나 이론의 개발
프로그래밍 언어
그 밖에 C#은 다양한 랩핑 라이브러리가 있지만 OpenCVSharp이 많이 쓰인다.
iOS와 Android도 지원하므로 사실상 Java와 Objective-C도 지원하는 셈이다.
MATLAB 등의 프로그램들과 연계도 가능하다.
주요 알고리즘
이진화(binarization)
노이즈 제거
외곽선 검출(edge detection)
기계학습(machine learning)
ROI(Region Of Interest) 설정
이미지 변환(image warping)
하드웨어 가속
댓글