본문 바로가기

컴퓨터 비전 study

Open CV 개요와 기초 사용법

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