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.
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
Vous devez vous connecter pour publier un commentaire.
à l'aide de
après l'avoir lu(image) semble être la meilleure solution pour résoudre ce problème.
De sorte que le total (test) code devient:
Si quelqu'un connaît une meilleure façon de faire, s'il vous plaît laissez-moi savoir.
OriginalL'auteur user3319803