꿈꾸는 개발자

OpenCV 주요 모듈 설명(C++) 본문

컴퓨터 비전

OpenCV 주요 모듈 설명(C++)

Anssony 2023. 2. 23. 10:58

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