일부 라스베리 파이에 연결된 웹캠이 있으며 OpenCV를 사용하여 이미지를 캡처합니다. 그러나 카메라가 움직이지 않는다고 생각하는 경우에도 이미지는 다소 흔들립니다. 하나의 카메라 만 실행하면 USB 대역폭 문제 일 가능성이 높습니다. 대역폭을 줄이기 위해 프레임 속도를 줄이려고 시도했습니다. Logitech C210은 5,10,15,20,25 및 30fps의 프레임 속도를 지원할 수 있어야합니다.Logitech C210 웹캠에서 C++의 v4l2를 사용하는 라즈베리 파이의 프레임 속도
OpenCV가 어쨌든이 라이브러리를 사용하는 것처럼 보이기 때문에 v4l2에 대한 문서를 살펴 봤습니다 (별로 좋지는 않지만). 나는 v4l2_ioctl()
카메라 컨트롤을 설정하는 데 문제없이 사용하고 있습니다. 어떤 이유로 프레임 속도를 비슷한 방식으로 설정할 수 없었습니다. 다음은 설명서 here에 따라 수행 할 작업입니다.
int descriptor = v4l2_open("/dev/video0", O_RDWR);
v4l2_captureparm s;
s.capability = V4L2_CAP_TIMEPERFRAME;
s.timeperframe.numerator = 1;
s.timeperframe.denominator = 5;
if(v4l2_ioctl(descriptor, VIDIOC_S_PARM, &s) !=0)
{
cout<< "Failed to set frame rate "<<endl;
}
컴파일하는 데 문제가 없지만 값이 성공적으로 설정되지 않았 음을 나타내는 couted 오류 메시지가 표시됩니다.
누구나 내가 뭘 잘못하고 있는지 아이디어가 있습니까?
미리 감사드립니다.