Python으로 OpenCV를 사용하다보면 내 컴퓨터에 연결된 카메라의 정보를 확인해야 하는 경우가 생긴다.
OpenCV를 사용할 때 연결된 카메라의 포맷과 코드 상의 포맷이 동일하지 않으면 IO가 많이 느려지는 것이 그 이유인데, 그럴 때마다 보통 우리는 cv2.VideoWriter_fourcc 명령어를 사용해 포맷을 맞춰 주곤 한다.
그래서 이번에는 어떤 포맷으로 맞춰주어야 내가 사용하는 카메라를 잘 사용할 수 있는지, 그 포맷을 확인하는 방법을 기록하려 한다.
핵심 코드만 빠르게 작성하면 다음과 같다.
v4l2-ctl --list-formats-ext -d 0
- v4l2-ctl : video for linux(카메라의 설정 및 제어를 도와주는 프로그램)를 사용하는 명령어
- --list-formats-ext : 지원되는 비디오 포맷을 확장된 형식으로 나열하라(상세 정보 포함)
- -d 0 : 첫번째 비디오 장치에 대해서(여러개가 연결되어 있을 경우 확인하고자 하는 카메라의 장치 번호 입력)
그럼 다음과 같은 결과를 얻을 수 있다.
내가 사용하고 있는 카메라의 경우 YUYV와 MJPG 포맷을 지원하는 것을 확인할 수 있으며, 해당 포맷에서 각각의 해상도에 따라 FPS가 몇까지 나오는지 위 코드를 통해 확인할 수 있다.
일반적으로 MJPG가 압축 버전이기 때문에 HD, FHD 등 고해상도로 갈 수록 YUYV 포맷보다 더 빠른 FPS 속도를 지원한다(나의 경우 HD기준 YUYV는 7.5FPS, MJPG는 30FPS).
이는 카메라를 구입할 때 내가 필요한 해상도에서 몇 FPS가 나오는지도 미리 파악할 수 있는 부분이기에 알아두면 좋은 정보일 것 같다 😀
'개발 관련 지식 > Ubuntu' 카테고리의 다른 글
[Ubuntu] 한글 제목 깨지지 않게 압축 해제하기 (0) | 2024.04.08 |
---|---|
[Ubuntu] 프로그램을 끊기지 않도록 백그라운드로 실행하기 (0) | 2024.04.03 |
[Ubuntu] Service 파일 실행하기 (0) | 2024.02.17 |
댓글