unsigned char 자료형 - 1바이트의 크기를 가짐, 부호없는 8bit 정수값을 지정할 수 있음 -> 그레이 스케일 값을 표현하기에 가장 적합한 자료형-> open CV 라이브러리에서는 uchar 자료형으로 이름 재정
open CV = open source vision library의 약어
openCV 주요 모듈
calib3d - 카메라 캘리브레이션과 3차원 재구성
core - 행력, 벡터 등 openCV 핵심 클래스와 연산 함수
dnn - 심층 신경망 기능
feartures2d - 2차원 특징 추출과 특징 벡터기술, 매칭방법
flann - 다차원 공간에서 빠른 최근방 이웃 검색
highgui - 영상의 화면 출력, 마우스 이벤트 처리 등 사용자 인터페이스
imgcodecs - 영상 파일 입출력
imgroc - 필터링, 기하학적 변환, 색 공간 변환 등 영상 처리 기능
ml - 통계적 분류, 회기 등 머시 러닝 알고리즘
objdetect - 얼굴, 보행자 검출 등 객체 검출
photo - HDR, 잡음 제거 등 사진 처리 기능
stitching - 영상 이어 붙이기
video - 옵티컬 플로우, 배경 차분 등 동영상 처리 기술
videoio - 동영상 파일 입출력
world - 여러 openCV 모듈을 포함하는 하나의 통합 모듈
영상 입출력(core, videoio, imgcodecs)
전처리(imgproc, photo)
특징 추출(imgproc, features2d)
객체 검출, 영상 분할(imgproc, objdetect)
분석 : 객체인식, 포즈 추정, 움직임 분석 3D 재구성(calib3d , video, stitching, ml, dnn)
화면 출력, 최종 판단(highgui, ml, dnn)
-> world 모듈은 모든 모듈을 합쳐서 하나의 모듈로 재구성한 것이기때문에 프로젝트에 추가하면 OpenCV에서 제공하는 모든 기능 사용가능하다. 그외 추가 모듈은 opencv_contrib 깃허브 저장소에서 받을 수 있으며, tracker모듈(동영상에서 객체를 안정적으로 추적하는 기능), face모듈(얼굴 인식과 관련된 기능) 등이 있다.
**OpenCV 4.0.0버전의 문서 사이트(https://docs.opencv.org/4.0.0/)의 우측 상단 검색창에 OpenCV 함수 또는 클래스 이름을 입력하면 해당하는 자세한 설명 페이지로 이동할 수 있으며, 첫 화면에서 튜토리얼 링크를 따라 이동하면 라이브러리 기능별 사용 설명서를 읽어 볼 수 있다.
새로운 OpenCV 예제 프로젝트를 생성할때마다 OpenCV 관련 설정하기(디버그모드,릴리즈모드 동일)
구성> C/C++>일반>추가포함디렉터리-오른쪽 역삼각형모양-편집-첫번째아이콘-$(OPENCV_DIR)\inclue
구성>링커>일반>추가라이브러리디렉터리-오른쪽 역삼각형모양-편집-첫번째아이콘-$(OPENCV_DIR)\x64\vc15\lib
>입력>추가 종속성-오른쪽 역삼각형모양-편집-opencv_world400d.lib *릴리즈모드는 opnecv_world400.lib*
cv네임스페이스로 선언되어 있으면 함수와 클래스의 이름 앞에 cv:: 을 붙여야 한다. 하지만 번거로우므로 소스코드 맨 위에 using namespace cv; 문장을 추가하고 실제 소스 코드에서는 cv:: 는 생략하는게 편리하다. std 네임스페이스 또한 using namespace std; 문장을 추가해서 사용하는 것이 편리하다.
'컴퓨터 비전 study' 카테고리의 다른 글
Open CV Vec와 Scalar 클래스 (0) | 2020.02.26 |
---|---|
OpenCv Mat 클래스(3) (0) | 2020.02.26 |
Open CV Mat 클래스(2) (0) | 2020.02.19 |
OpenCV Mat 클래스(1) (0) | 2020.02.14 |
OpenCV 기본 자료형 클래스 (0) | 2020.02.14 |