HTML5/HTML API

OpenCV의 확장 라이브러리, opencv-contrib-python

forSilver 2025. 4. 16. 14:37
반응형

OpenCV의 확장 라이브러리, opencv-contrib-python

OpenCV의 확장 라이브러리는 opencv-contrib-python이라는 이름으로 제공되며, 표준 OpenCV 패키지에 포함되지 않은 고급 알고리즘과 실험적인 기능, 추가적인 모듈들이 포함되어 있습니다. 특히 이미지 인식과 특징 추출 등에 유용한 도구들이 많이 들어 있습니다.


📦 1. 설치 방법

기본 OpenCV 대신 확장판을 설치해야 합니다.

pip install opencv-contrib-python

기존에 opencv-python이 설치되어 있다면 먼저 삭제하는 것이 좋습니다:

pip uninstall opencv-python
pip install opencv-contrib-python

OpenCV 대신 확장라이브러리 설치


🔍 2. 포함된 주요 모듈들

아래는 opencv-contrib-python에서만 사용할 수 있는 대표적인 모듈들입니다.

 

모듈 이름 설명
xfeatures2d SIFT, SURF, BRIEF, FREAK 등 고급 특징 추출 알고리즘 포함
tracking 객체 추적(Tracking) 알고리즘 (KCF, MIL, TLD 등)
face 얼굴 인식, 얼굴 특징점 검출, 얼굴 인식 학습(FaceRecognizer 등)
text 이미지에서 문자 검출 및 추출 (OCR)
structured_light 3D 재구성용 스트럭처드 라이트(패턴 기반 스캔)
bioinspired 인간 시각 시스템에서 영감을 받은 영상 처리 모델
line_descriptor 선분 특징 추출을 위한 알고리즘
optflow 군중 추적, 고급 광류(optical flow) 알고리즘
sfm Structure from Motion (카메라 위치, 3D 재구성) 관련 기능

🌟 3. 대표 알고리즘 예시

SIFT 특징점 추출 예시

import cv2

# 이미지 불러오기
img = cv2.imread('sample.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# SIFT 객체 생성
sift = cv2.SIFT_create()

# 키포인트와 디스크립터 계산
keypoints, descriptors = sift.detectAndCompute(gray, None)

# 결과 시각화
img_sift = cv2.drawKeypoints(gray, keypoints, None)
cv2.imshow('SIFT Features', img_sift)
cv2.waitKey(0)
cv2.destroyAllWindows()

이 코드는 opencv-contrib-python을 설치해야 정상 작동합니다.
기본 opencv-python에는 cv2.SIFT_create()가 포함되어 있지 않습니다.


🛠️ 4. 활용 팁

  • cv2.getBuildInformation()을 실행하면 현재 설치된 OpenCV 빌드에 포함된 모듈 목록을 확인할 수 있습니다.
  • OpenCV의 공식 GitHub에서 modules 폴더를 확인하면 어떤 기능이 기본/확장 모듈인지 분류되어 있습니다.
  • 일부 모듈은 비상업적 또는 연구 목적으로만 사용이 허가된 경우도 있으므로, 라이선스 확인이 필요합니다 (예: SIFT, SURF).

📚 마무리 요약

 

구분  opencv-python  opencv-contrib-python
용도 기본 기능만 포함 실험적 및 고급 기능 포함
설치 pip install opencv-python pip install opencv-contrib-python
주요 기능 기본 영상 처리, 얼굴 탐지 등 SIFT, SURF, 추적, OCR, 3D 재구성 등

OpenCV를 본격적으로 활용하시려면 opencv-contrib-python은 거의 필수입니다.

'HTML5 > HTML API' 카테고리의 다른 글

OpenCV(Open Source Computer Vision Library)  (0) 2025.04.15