Ответ 1
используя оболочки python для opencv, для меня это работало, чтобы ссылаться на переменную как:
cap = cv2.VideoCapture(1)
cap.set(cv2.cv.CV_CAP_PROP_FPS, 60)
Я использую python 2.7.3 и opencv 2.4.8
Камера - это глаз PS3
Как установить камеру FPS?
Может быть cvSetCaptureProperty (cameraCapture, CV_CAP_PROP_FPS, 30);
Но он возвращается HIGHGUI ERROR: V4L2: невозможно получить свойство (5) - недопустимый аргумент
Поскольку в highgui/cap_v4l.cpp
нет реализации,static int icvSetPropertyCAM_V4L( CvCaptureCAM_V4L* capture,
int property_id, double value ){
static int width = 0, height = 0;
int retval;
/* initialization */
retval = 0;
/* two subsequent calls setting WIDTH and HEIGHT will change
the video size */
/* the first one will return an error, though. */
switch (property_id) {
case CV_CAP_PROP_FRAME_WIDTH:
width = cvRound(value);
if(width !=0 && height != 0) {
retval = icvSetVideoSize( capture, width, height);
width = height = 0;
}
break;
case CV_CAP_PROP_FRAME_HEIGHT:
height = cvRound(value);
if(width !=0 && height != 0) {
retval = icvSetVideoSize( capture, width, height);
width = height = 0;
}
break;
case CV_CAP_PROP_BRIGHTNESS:
case CV_CAP_PROP_CONTRAST:
case CV_CAP_PROP_SATURATION:
case CV_CAP_PROP_HUE:
case CV_CAP_PROP_GAIN:
case CV_CAP_PROP_EXPOSURE:
retval = icvSetControl(capture, property_id, value);
break;
default:
fprintf(stderr,
"HIGHGUI ERROR: V4L: setting property #%d is not supported\n",
property_id);
}
/* return the the status */
return retval;
}
Как его решить?
используя оболочки python для opencv, для меня это работало, чтобы ссылаться на переменную как:
cap = cv2.VideoCapture(1)
cap.set(cv2.cv.CV_CAP_PROP_FPS, 60)
Я использую python 2.7.3 и opencv 2.4.8
Камера - это глаз PS3
Я не знаю, сохранилось ли это, но какое-то время назад, примерно полтора года, я столкнулся с этой проблемой. Я связался с разработчиком OpenCV, и он сказал мне, что доступ и возможность изменить некоторые свойства захвата еще не реализованы, а некоторые другие просто работают для определенных типов камер. Я наконец взглянул на libdc1394 (работал в Linux) и сделал некоторые функции, которые преобразовывали данные, полученные libdc1394 в IplImages из OpenCV. Это была непростая задача.
проверить opencv2.4 руководство, видеозапись вещь намного лучше, чем раньше,
- > set (CV_CAP_PROP_FPS, 30), работает для меня большую часть времени. но немного низкой эффективности.
на всякий случай, если вам может не понравиться новый opencv2.4 и вы хотите управлять своей камерой. проверьте здесь видеоинтерфейс lib. он работает хорошо и использует функции directshow. http://www.aishack.in/2010/03/capturing-images-with-directx/ http://www.muonics.net/school/spring05/videoInput/
CV_CAP_PROP_FPS - это НЕ подделка. См. Cap_libv4l.cpp(1) в OpenCV github repo. Ключ должен убедиться, что вы используете libv4l над v4l при настройке OpenCV. Для этого перед запуском cmake установите libv4l-dev
sudo apt-get install libv4l-dev
Теперь при настройке OpenCV с помощью cmake включите опцию WITH_LIBV4L
. Если все будет хорошо, в статусе конфигурации вы увидите что-то похожее ниже
V4L/V4L2: Использование libv4l1 (ver)/libv4l2 (ver)
И затем, строя свой код OpenCV, вам нужно будет установить связь с libv4l1/libv4l2/libv4lconvert.
Арбитарные значения FPS в выбранных вами разрешениях не должны поддерживаться вашей веб-камерой. Вы можете проверить поддерживаемые разрешения /fps с помощью графических инструментов, таких как сыр или команды, такие как lsusb (2)