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
, y
dot()
, ddot()
, cross()
, inside()
등std::cout
출력을 위한 <<
연산자 오버로딩을 지원Size_
width
, height
area()
std::cout
출력을 위한 <<
연산자 오버로딩을 지원Rect_
x
, y
, width
, height
tl()
, br()
, size()
, area()
, contains()
std::cout
출력을 위한 <<
연산자 오버로딩을 지원Range
start
, end
size()
, 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
📙강의 - 강사 황선규