OpenCV 주요 모듈 설명(C++)
OpenCV 라이브러리에는 여러 모듈들이 들어있다.
하지만 처음 시작하는 사람의 입장에선 모듈을 사용하고 싶지만 어떤 헤더파일에 존재하는지를 몰라 헤매는 경우가 많다.
이를 위해 책에서 나온 내용을 토대로 정리하려고 한다.
주요 모듈 리스트
calib3d
core
dnn
features2d
flann
highgui
imgcodecs
imgproc
ml
objdetect
photo
stitching
video
videoio
이외에도 여러 모듈들이 있지만, 위 모듈들만 간단한 설명 및 해당하는 헤더 파일을 나열하도록 하겠습니다.
calib3d
#include <opencv2/calib3d.hpp>
camera calibration과 3D reconstruction을 위한 모듈
https://docs.opencv.org/3.4/d2/d28/calib3d_8hpp.html
OpenCV: opencv2/calib3d.hpp File Reference
double cv::fisheye::calibrate (InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, const Size &image_size, InputOutputArray K, InputOutputArray D, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags=0, TermCriteria criteria=TermCr
docs.opencv.org
core
#incluide <opencv2/core.hpp>
행렬, 벡터 등 OpenCV 핵심 클래스와 연산 함수가 존재하는 모듈
https://docs.opencv.org/3.4/da/d47/core_8hpp.html
OpenCV: opencv2/core.hpp File Reference
void cv::batchDistance (InputArray src1, InputArray src2, OutputArray dist, int dtype, OutputArray nidx, int normType=NORM_L2, int K=0, InputArray mask=noArray(), int update=0, bool crosscheck=false)
docs.opencv.org
dnn
#include <opencv2/dnn.hpp>
심층 신경망 기능을 위한 모듈
https://docs.opencv.org/3.4/d9/d8c/dnn_8hpp.html
OpenCV: opencv2/dnn.hpp File Reference
OpenCV 3.4.19-dev Open Source Computer Vision
docs.opencv.org
features2d
#include <opencv2/features2d.hpp>
2차원 특징 추출과 특징 벡터 기술, 매칭 방법
https://docs.opencv.org/3.4/d5/d0d/features2d_8hpp.html
OpenCV: opencv2/features2d.hpp File Reference
void cv::drawMatches (InputArray img1, const std::vector< KeyPoint > &keypoints1, InputArray img2, const std::vector< KeyPoint > &keypoints2, const std::vector< DMatch > &matches1to2, InputOutputArray outImg, const Scalar &matchColor=Scalar::all(-1), cons
docs.opencv.org
flann
#include <opencv2/flann.hpp>
다차원 공간에서 빠른 K-Nearest Neighbors 알고리즘
https://docs.opencv.org/3.4/dc/dc1/flann_8hpp.html
OpenCV: opencv2/flann.hpp File Reference
docs.opencv.org
highgui
#include <opencv2/highgui.hpp>
영상의 화면 출력, 마우스 이벤트 처리 등 사용자 인터페이스
https://docs.opencv.org/3.4/d4/dd5/highgui_8hpp.html
OpenCV: opencv2/highgui.hpp File Reference
void cv::addText (const Mat &img, const String &text, Point org, const String &nameFont, int pointSize=-1, Scalar color=Scalar::all(0), int weight=QT_FONT_NORMAL, int style=QT_STYLE_NORMAL, int spacing=0)
docs.opencv.org
imgcodecs
#include <opencv2/imgcodecs>
영상 파일 입출력
https://docs.opencv.org/3.4/d6/d87/imgcodecs_8hpp.html
OpenCV: opencv2/imgcodecs.hpp File Reference
enum cv::ImwriteFlags { cv::IMWRITE_JPEG_QUALITY = 1, cv::IMWRITE_JPEG_PROGRESSIVE = 2, cv::IMWRITE_JPEG_OPTIMIZE = 3, cv::IMWRITE_JPEG_RST_INTERVAL = 4, cv::IMWRITE_JPEG_LUMA_QUALITY = 5, cv::IMWRITE_JPEG_CHROMA_QUALITY = 6,
docs.opencv.org
imgproc
#include
필터링, 기하학적 변환, 색 공간 변환 등 영상 처리 기능
https://docs.opencv.org/3.4/dd/d46/imgproc_8hpp.html
OpenCV: opencv2/imgproc.hpp File Reference
enum cv::ColorConversionCodes { cv::COLOR_BGR2BGRA = 0, cv::COLOR_RGB2RGBA = COLOR_BGR2BGRA, cv::COLOR_BGRA2BGR = 1, cv::COLOR_RGBA2RGB = COLOR_BGRA2BGR, cv::COLOR_BGR2RGBA = 2, cv::COLOR_RGB2BGRA = COLOR_BGR2RGBA, cv::COLOR_R
docs.opencv.org
ml
#include
통계적 분류, 회기 등 머신 러닝 알고리즘
https://docs.opencv.org/3.4/d3/d29/ml_8hpp.html
OpenCV: opencv2/ml.hpp File Reference
int cv::ml::simulatedAnnealingSolver (SimulatedAnnealingSolverSystem &solverSystem, double initialTemperature, double finalTemperature, double coolingRatio, size_t iterationsPerStep, double *lastTemperature=NULL, cv::RNG &rngEnergy=cv::theRNG())
docs.opencv.org
objdetect
#include
얼굴, 보행자 검출 등 객체 검출
https://docs.opencv.org/3.4/d8/da3/objdetect_8hpp.html
OpenCV: opencv2/objdetect.hpp File Reference
void cv::groupRectangles_meanshift (std::vector< Rect > &rectList, std::vector< double > &foundWeights, std::vector< double > &foundScales, double detectThreshold=0.0, Size winDetSize=Size(64, 128))
docs.opencv.org
photo
#include
HDR, 잡음 제거 등 사진 처리 기능
https://docs.opencv.org/3.4/dc/d81/photo_8hpp.html
OpenCV: opencv2/photo.hpp File Reference
void cv::fastNlMeansDenoisingMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, const std::vector< float > &h, int templateWindowSize=7, int searchWindowSize=21, int normType=NORM_L2)
docs.opencv.org
stitching
#include
영상 이어 붙이기
https://docs.opencv.org/3.4/dc/d7a/stitching_8hpp.html
OpenCV: opencv2/stitching.hpp File Reference
OpenCV 3.4.19-dev Open Source Computer Vision
docs.opencv.org
video
#include
Optical Flow, 배경 차분 등 동영상 처리 기술
https://docs.opencv.org/3.4/d5/d71/video_8hpp.html
OpenCV: opencv2/video.hpp File Reference
OpenCV 3.4.19-dev Open Source Computer Vision
docs.opencv.org
videoio
#include
동영상 파일 입출력
https://docs.opencv.org/3.4/dc/d3d/videoio_8hpp.html
OpenCV: opencv2/videoio.hpp File Reference
enum cv::VideoCaptureAPIs { cv::CAP_ANY = 0, cv::CAP_VFW = 200, cv::CAP_V4L = 200, cv::CAP_V4L2 = CAP_V4L, cv::CAP_FIREWIRE = 300, cv::CAP_FIREWARE = CAP_FIREWIRE, cv::CAP_IEEE1394 = CAP_FIREWIRE, cv::CAP_DC1394 = CAP_FIRE
docs.opencv.org
책 출처 : https://github.com/sunkyoo/opencv4cvml
GitHub - sunkyoo/opencv4cvml: "OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" (길벗, 2019) 책 소스 코드입니
"OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" (길벗, 2019) 책 소스 코드입니다. - GitHub - sunkyoo/opencv4cvml: "OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" (길벗, 2019) 책 소스 코드입니다.
github.com