반응형
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
🔍 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 |
---|