Comment régler l'appareil en FPS dans OpenCV? CV_CAP_PROP_FPS est un faux
Comment régler l'Appareil en FPS?
Peut être
cvSetCaptureProperty(cameraCapture, CV_CAP_PROP_FPS, 30);
?
Mais il est de retour
HIGHGUI ERREUR: V4L2: Impossible d'obtenir la propriété (5) - argument non Valide
Parce qu'il n'y est pas mise en œuvre dans 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;
}
Comment le résoudre?
OriginalL'auteur victor1234 | 2011-08-12
Vous devez vous connecter pour publier un commentaire.
à l'aide de l'python wrappers pour opencv, il a travaillé pour moi de faire référence à la variable:
Je suis à l'aide de python 2.7.3 et opencv 2.4.8
La caméra de la PS3 Eye
Vous pouvez le configurer pour 187 fps trop 😀 (si basse résolution 320x240 ensemble via CAP_PROP_FRAME_WIDTH/HAUTEUR)
OriginalL'auteur
Je ne sais pas si c'est toujours valable, mais il y a quelque temps, quelque chose comme un an et demi, j'ai rencontré exactement le problème. J'ai contacté avec un développeur de OpenCV et il me dit que l'accès et de la capacité à modifier certaines des propriétés de capture n'ont pas encore mis en œuvre et quelques autres travaillaient seulement pour certains types de caméra. Finalement j'ai pris un coup d'oeil à libdc1394 (travail sous linux) et fait quelques fonctions qui converti les données récupérées par libdc1394 à IplImages de OpenCV. Ce n'était pas une tâche difficile.
J'ai jamais dit ça, je ne l'ai dit à mon expérience et comment j'ai résolu un problème similaire.
C'est vrai, mais j'ai un Logitech c920 et que l'appareil photo ne prend en charge toutes les opérations. Je voulais juste l'appui de votre demande "d'autres travaillaient seulement pour certains types de caméra" :), les stackoverflow.com/questions/16432676/...
Ok j'ai mal compris :), vous avez certainement raison
OriginalL'auteur
CV_CAP_PROP_FPS est un PAS un faux. Voir cap_libv4l.cpp(Un) dans OpenCV dépôt github. La clé est de s'assurer que, vous utilisez de libv4l plus de v4l lors de la configuration d'OpenCV. Pour cela, avant de lancer cmake, installer de libv4l-dev
Maintenant lors de la configuration d'OpenCV avec cmake, activer l'option,
WITH_LIBV4L
. Si tout va bien, dans l'état de la configuration, vous verrez quelque chose de similaire à ci-dessousEt puis, tandis que la construction de votre OpenCV code, vous aurez un lien avec libv4l1/libv4l2/libv4lconvert.
Arbitraire FPS valeurs à des résolutions que vous choisissez, n'a pas besoin d'être pris en charge par votre webcam. Vous pouvez vérifier les résolutions prises en charge/fps avec un des outils graphiques comme du fromage ou des commandes comme lsusb (Deux)
WITH_LIBV4L
a été activé par défaut) et la liaison a fonctionné sans aucun changement à faire. Obtention et définition des CV_CAP_PROP_FPS travaille maintenant pour mon LifeCam Cinéma.v4l2-ctl -d 0 --list-formats-ext
répertorie les prises en charge des taux de trame pour chaque format de pixel (par exemple, 'MJPG') et de la résolution. Pour ma LifeCam Cinémas, MJPG, et 640x480, je pourrais le mettre 30fps mais seulement mesurée 15fps dans mon OpenCV "camera viewer" du code.Ce qui signifie également qu'il peut ne pas fonctionner dans certains déjà versions compilées, ou sur différentes plates-formes (comme windows).
OriginalL'auteur
vérifier opencv2.4 manuel, la capture vidéo de chose est beaucoup mieux qu'avant,
->set(CV_CAP_PROP_FPS,30);fonctionne pour moi la plupart du temps.
mais un peu faible efficacité.
juste au cas où vous ne pourriez pas aimer la nouvelle opencv2.4 et vous souhaitez contrôler votre caméra. de vérifier la videoinput lib ici. il fonctionne bien, et en utilisant directshow fonctionnalités.
http://www.aishack.in/2010/03/capturing-images-with-directx/
http://www.muonics.net/school/spring05/videoInput/
OriginalL'auteur