Changement d'OpenCV fichier vidéo résolution

Je suis en création d'un programme dans OpenCV (2.4.8) qui devrait se lire des fichiers vidéo et faire quelques calculs sur eux. Pour ces calculs, je n'ai pas besoin de la haute-res images, je suis parfaitement bien avec 640*360 résolution.

Dans les premiers tests, j'ai eu ma webcam attaché et j'ai utilisé:

VideoCapture cap(0);
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 360);
Mat image;
cap.read(image);
namedWindow("firstframe", 1);
imshow("firstframe", image);
waitKey(0);

Qui redimensionné l'image à la perfection. J'en arrive maintenant à la prochaine étape, où je veux utiliser mon programme pour stocker de la vidéo au lieu d'un flux en direct (que j'ai utilisé pour le test).
Lorsque je passe à " 0 " avec le chemin du fichier source (chaîne de caractères), le fichier est chargé, mais la résolution reste 1920*1080.

Ai-je fait quelque chose de mal? Est-il un moyen de charger la vidéo à une résolution inférieure "à la volée"?

J'ai lu le OpenCV documentation. Certains paramètres sont étiquetés 'seulement pour les caméras" mais ce paramètre n'est pas:
http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-videocapture

Je suis en utilisant OpenCV sur un mac, et installé avec MacPorts.

Laissez-moi savoir si tout plus de détails sont nécessaires.

Merci d'avance pour votre aide

edit:
Je me suis rendu compte que la pac.ensemble(...) les fonctions retournent un booléen, donc j'ai essayé de les imprimer et ils reviennent à 0. Bien sûr, cela confirme que l'image n'est pas redimensionnée. Toujours pas la moindre idée de pourquoi...

edit 2 :
Alors maintenant, pour une solution temporaire-je utiliser la ligne suivante après la lecture(image):

resize(image, image, Size(640, 360), 0, 0, INTER_CUBIC);

Et cela fonctionne. Mais je suppose que ce n'est pas vraiment la solution la plus optimale.

lorsque vous avez une webcam, vous pouvez définir la résolution des images acquises, mais lorsque vous chargez votre vidéo a la résolution codé. Le seul moyen que je vois est pour redimensionner l'image, comme vous l'avez fait.
Merci, je pensais à la même chose. Le changement de résolution est probablement fait dans le matériel sur les webcams directement. Ma conjecture est que ffmpeg serait redimensionner à la volée avec cette option activée. Mais là encore, ce doit être le même calcul sage que mon redimensionner déclaration.

OriginalL'auteur user3319803 | 2014-04-03