반응형
2022.06.13 - [Knowhow/Vision] - Opencv multi webcam 사용 시 인식 확인
이전 글에서 cv2.VideoCapture()를 사용할 때 필요한 camera index를 어떻게 찾는지 정리한 바 있는데, 글 말미에서는 USB 포트를 바꿀 때마다 혹은 USB 포트가 고장났을 때마다 index가 바뀌는 상황이 빈번해서 device id를 읽어서 camera index를 찾아내는 것이 안전하다고 언급했었다.
pyudev를 써서 구현했었으나 더 직관적으로 간단한 기능이 있어서 추가 정리한다. 바로 아래 패키지인데 아주 좋다.
https://pypi.org/project/cv2-enumerate-cameras/
pip install cv2_enumerate_cameras
from cv2_enumerate_cameras import enumerate_cameras
for camera_info in enumerate_cameras():
print(f'{camera_info.index}: {camera_info.name}')
# 0 : Front Camera
# 1 : Back Camera
# 2 : ...
이렇게 출력해보고 원하는 카메라 이름을 string으로 저장해두었다가, 나중에 camera_info.name과 비교하면서 항상 같은 카메라의 index를 찾아낼 수 있다.
위 예시처럼 같은 카메라임에도 index가 1800번, 200번 이렇게 나올 수도 있는데 이건 백엔드 타입이 default로 CAP_ANY가 들어가서 그렇다.
webcam은 웬만해서는 CAP_DSHOW를 쓰므로 다음과 같이 쓰면 원래 알던 0,1,2,3 ... 이 나올 것이다.
import cv2
from cv2_enumerate_cameras import enumerate_cameras
for camera_info in enumerate_cameras(cv2.CAP_DSHOW):
print(f'{camera_info.index}: {camera_info.name}')
반응형
'Knowhow > Vision' 카테고리의 다른 글
Open3D Normal map rendering, Normal 이미지 얻는 방법 (0) | 2024.11.05 |
---|---|
Facescape 모델 68 keypoint/landmark index (0) | 2024.08.28 |
obj 파일 v, vt, f 등 직접 저장하기, obj save (0) | 2024.08.28 |
Facescape 모델 displacement map 사용법, detailed mesh 얻어내는 방법 (0) | 2024.08.28 |
Unit cube vertices, faces index (pytorch3d cube 만들기) (0) | 2024.08.05 |