OpenCV, 알아두면 쓸모있는 지식들

Lily·2023년 10월 16일
0

TIL

목록 보기
5/21

OpenCV 역사

  • 1998: Intel 주도로 개발, 이후 오픈소스화 됨
  • 2006: OpenCV 1.0, C로 구현(함수 & 구조체), IplImage 구조체
  • 2009: OpenCV 2.0, C++로 전환(클래스), Mat 클래스
  • 2015: OpenCV 3.0, OpenCV 프로젝트 구조 개선, GPU, IPP 활용 확대
  • 2017: OpenCV 3.3, DNN(Deep Neural Network) 모듈 지원
  • 2018: OpenCV 4.0, C++11, C++17 지원 (C API 지원 중단)
  • 2021: OpenCV 4.5.5
  • 2023: OpenCV 4.8.0 ~

OpenCV 메인 모듈의 이름과 설명

영상 입출력 관련

  • core
    • 행렬, 벡터 등의 OpenCV 핵심 클래스와 연산 함수
  • videoio
    • 동영상 파일 입출력
  • imgcodecs
    • 영상 파일 입출력

전처리

  • imgproc
    • 필터링, 기하학적 변환, 색 공간 변환 등의 영상 처리 기능
  • photo
    • HDR, 잡음 제거 등의 사진 처리 기능

특징 추출

  • imgproc
  • features2d
    • 2차원 특징 추출과 특징 벡터 기술, 매칭 방법

객체 검출, 영상 분할

  • imgproc
  • objdetect
    • 얼굴, 보행자 검출 등의 객체 검출

분석: 객체 인식, 포즈 추정, 움직임 분석, 3D 재구성

  • calib3d
    • 카메라 캘리브레이션과 3차원 재구성
  • video
    • 옵티컬 플로우, 배경 차분 등의 동영상 처리 기술
  • stitching
    • 영상 이어 붙이기
  • ml
    • 통계적 분류, 회귀 등의 머신 러닝 알고리즘
  • dnn
    • 심층 신경망 기능

화면 출력, 최종 판단

  • highgui
    • 영상의 화면 출력, 마우스 이벤트 처리 등의 사용자 인터페이스
  • ml
  • dnn

그 외

  • flann
    • 다차원 공간에서 빠른 최근방 이웃 탐색
  • java, js, python
    • Java, JavaScript, Python 인터페이스 지원
  • world
    • 여러 OpenCV 모듈을 포함하는 하나의 통합 모듈
    • dll 파일에서 용량이 커질 수 있음

OpenCV 추가 모듈의 이름과 설명

  • aruco
    • ArUco Maker Detection (augmented reality & camera callibration)
  • bgsegm
    • Improved Background-Foreground Segmentation Methods
  • cuda XXXXXX
    • 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

OpenCV 라이브러리 구성 환경

(출처: slide share - Kirill Kornyakov, Itseez, ICVS 2013)

OpenCV 설치, 사용 시 구성 성분

  • OpenCV 헤더파일, LIB 파일:
    • OpenCV 프로그램을 빌드할 때 필요
    • (windows 기준) opencv/build/include 내부 hpp 파일을 사용하는 것으로 추정
    • (windows 기준) opencv/build/x64/vc*/lib 내부 lib 파일을 사용하는 것으로 추정
  • OpenCV DLL 파일:
    • OpenCV 프로그램을 실행할 때 필요
    • (windows 기준) opencv/build/x64/vc*/bin 내부 dll 파일을 사용하는 것으로 추정
    • 내 PC의 환경변수에 dll 을 포함한 디렉터리 추가해야 실행 가능
  1. 내 프로젝트에 OpenCV 헤더파일 위치 지정 (C++ > 일반 > 추가 포함 디렉터리)
  2. OpenCV LIB 파일 위치 지정 (링커 > 일반 > 추가 라이브러리 디렉터리)
  3. OpenCV LIB 파일 이름 지정 (링커 > 입력 > 추가 종속성)
  4. debug(파일 끝에 d 있음) / release 각각 위의 1~3번 설정 해야 함

References

profile
First Attempt In Learning

0개의 댓글