OpenCV는 모듈이라고 불리는 다수의 라이브러리들의 집합
메인 모듈: 핵심 기능, 널리 사용되는 기능, 기반 기능(infrastructure)
| 모듈 | 설명 |
|---|---|
| calib3d | 카메라 갤리브레이션과 3자원 재구성 |
| core | 행렬, 벡터 등의 OpenCV 핵심 클래스와 연산 함수 |
| dnn | 심층 신경망 기능 |
| features2d | 2자원 특징 추출과 특징 벡터 기술, 매칭 방법 |
| flann | 다차원 공간에서 빠른 최근방 이웃 검색 |
| highgui | 영상의 화면 출력, 마우스 이벤트 처리 등의 사용자 인터페이스 |
| imgcodecs | 영상 파일 입출력 |
| imgproc | 필터링, 기하학적 변환, 색 공간 변환 등의 영상 처리 기능 |
| ml | 통계적 분류, 회기 등의 머신 러닝 알고리즘 |
| java, JS, python | Java, JavaScript, Python 인터페이스 지원 |
| objdetect | 얼굴, 보행자 검출 등의 객체 검출 |
| photo | HDR, 잡음 제거 등의 사진 처리 기능 |
| stitching | 영상 이어 붙이기 |
| Video | 옵티컬 플로우, 배경 차분 등의 동영상 처리 기술 |
| videoio | 동영상 파일 입출력 |
| world | 여러 OpenCV 모듈을 포함하는 하나의 통합 모듈 |
추가(extra) 모듈: 최신 기능, 널리 사용되지 않는 기능, 특허, HW 의존적 기능(CUDA) 등
| 모듈 | 설명 |
|---|---|
| aruco | ArUco Marker Detection (augmented reality & camera calibration) |
| bgsegm | Improved Background-Foreground Segmentation Methods |
| cudaXXXXXX | CUDA-accelerated modules |
| face | Face recognition techniques, face landmark detection |
| freetype | FreeType module |
| optflow | Optical Flow Algorithms |
| sfm | Structure From Motion module |
| shape | Shape descriptors and matchers |
| stereo | Stereo correspondence with different descriptors |
| superres | Super Resolution |
| tracking | Object tracking API |
| videostab | Video stabilization |
| xfeatures2d | Extra 2D Features Framework |
| ximgproc | Extended image processing module |
imread(): 이미지 불러오기img.empty()imwrite(): 이미지 저장namedWindow(): 새 창 띄우기imshow(): 화면에 이미지 출력. waitKey가 없으면 화면이 바로 닫히기 때문에 대부분의 경우 두 코드를 같이 사용한다.waitKey(): 키 입력 대기destroyAllWindows(): 모든 창 닫기Point_
x, ydot(), ddot(), cross(), inside() 등std::cout 출력을 위한 << 연산자 오버로딩을 지원Size_
width, heightarea()std::cout 출력을 위한 << 연산자 오버로딩을 지원Rect_
x, y, width, heighttl(), br(), size(), area(), contains()std::cout 출력을 위한 << 연산자 오버로딩을 지원Range
start, endsize(), empty(), all()String
std::string 클래스로 대체Vec
Vec 클래스는 벡터를 표현하는 템플릿 클래스std::cout 출력을 위한 << 연산자 오버로딩을 지원Scalar
double 배열(double val\[4])을 멤버 변수로 가지고 있는 클래스[] 연산자를 통해 원소에 접근 가능InputArray
Mat 클래스를 대체하는 프록시 클래스(proxy class)로 OpenCV 함수에서 입력 인자로 사용됨_InputArray 클래스의 인스턴스 또는 변수를 생성하여 사용하는 것을 금지OutputArray
_OutputArray 클래스는 _InputArray 클래스를 상속받아 만들어졌으며, 새로운 행렬을 생성하는 create() 함수가 정의되어 있음.InputOutputArray
📙강의 - 강사 황선규