Ne peut pas accéder à la webcam avec OpenCV
Je suis en utilisant OpenCV 2.2 avec visual studio 2010 sur un win 7 64 bits pc.
Je suis en mesure d'afficher des images et lire des fichiers AVI par OpenCV, telle que donnée dans le livre "Apprendre OpenCV" mais je ne suis pas en mesure de capturer les images de la webcam. Même les échantillons remis avec le OpenCV fichiers ne peut pas accéder à la webcam.
Je me demande "source vidéo -> source de capture" et il y a deux options: webcam HP Splitter et webcam HP. Si j'sélectionnez HP webcam, la fenêtre se ferme immédiatement sans afficher de message d'erreur. (je pense que n'importe quel message d'erreur est trop rapide pour être vu avant la fermeture). Si je sélectionne Webcam HP splitter puis la nouvelle fenêtre, où les images de la webcam(vidéo) sont censés venir, est rempli avec de l'uniforme gris. La diode de la webcam est sur mais la vidéo n'est pas visible. Ma webcam fonctionne très bien avec le flash (www.testmycam.com) et avec DirectShow http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx
Je l'ai fait essayer d'obtenir des messages d'erreur en utilisant ce:
#include "cv.h"
#include "highgui.h"
#include <iostream>
using namespace cv;
using namespace std;
int main(int, char**)
{
VideoCapture cap("0"); //open the default camera
if(!cap.isOpened()) //check if we succeeded
{
cout << "Error opening camera!";
getchar();
return -1;
}
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; //get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
//the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
Et le message d'erreur que j'ai eu était:
warning: Error opening file (C:\Users\vp\work\ocv\opencv\modules\highgui\src\cap
_ffmpeg.cpp:454)
Error opening camera!
Je ne sais pas ce qu'est cette "cap_ffmpeg.cpp" et je ne sais pas si c'est un problème avec le fouineur "HP Media Smart" choses".
Toute aide sera grandement appréciée.
Je ne sais pas si cela fonctionne pour vous, mais user660815 réponse résolu tous mes problèmes. Vous pourriez envisager de repérage sa réponse comme correcte.
OriginalL'auteur Astromaz3 | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème sur Windows 7 64 bits. J'ai eu à recompiler opencv_highgui la modification de la "Preprocesser Définitions" dans le C/C++ panneau des propriétés de la page pour inclure:
HAVE_VIDEOINPUT
HAVE_DSHOW
Espère que cette aide
bien sûr, heureux de vous aider 🙂
OriginalL'auteur pkmital
L'cap_ffmpeg.cpp est le fichier source qui utilise ffmpeg pour effectuer de la capture de l'appareil. Si la valeur par défaut de l'exemple de OpenCV ne fonctionne pas avec votre webcam, vous êtes hors de la chance. Je vous suggère d'en acheter un autre qui est pris en charge.
Mais alors openCV2.1 les échantillons de travailler sans aucun problème...
Si oui, alors en tenir à OpenCV2.1. Il fonctionne assez bien. Vous souhaitez déposer un bug avec OpenCV.
Chose amusante, est - ce problème (me) n'apparaît que sur plate - forme windows- pas de bugs sur Mac ou Linux=(
OriginalL'auteur Dat Chu
Récemment, j'ai installé OpenCV 2.2 et NetBeans 6.9.1. J'ai eu un problème avec la caméra de capturer l'image dans la fenêtre était noir, mais le programme fonctionne parfaitement, sans erreurs. J'ai dû lancer NetBeans en tant qu'admin, utilisateur pour résoudre ce problème.
J'espère que cela peut vous aider à tous.
OriginalL'auteur Gustavo
Je viens de passé à OpenCV 2.2 et je suis ayant essentiellement le même problème, mais un 32 bits compture sous Vista. La webcam serait de commencer, mais j'avais un message d'erreur de réglage de la largeur de la propriété de la caméra. Si je demande spécifiquement l'DirectShow de la caméra, la cvCreateCameraCapture serait un échec.
Ce que je pense, c'est que la version de distribution HighGUI a été construit à l'exclusion de la DirectShow de la caméra. L'favorisée Windows caméra sur OpenCV utilisé pour être la Vidéo Pour Windows, VFW, mais qui a été abandonné depuis Windows Vista est sorti et a créé toutes sortes de problèmes. Pourquoi ils ne font pas que de l'inclure, je ne sais pas. Vérifiez le fichier source cap.cpp
Ma prochaine étape est de reconstruire HighGUI moi-même et assurez-vous que le drapeau HAVE_DSHOW est réglé. Je crois me souvenir d'avoir le même problème avec la dernière version d'OpenCV j'ai été en utilisant jusqu'à ce que je reconstruite en s'assurant que le DirectShow version a été activé.
OriginalL'auteur Tim Craig
J'ai eu le même problème. Mon Vaio Webcam voyant est allumé mais pas d'image sur l'écran.
Alors j'ai essayé d'exporter la première image d'un fichier JPEG et son travail. Puis j'ai essayé d'insérer un délai de 33ms avant de capturer n'importe quelle image, cette fois, il fonctionne comme un charme. Espérons que cela va aider.
OriginalL'auteur W00f
Voici un article que j'ai écrit il y a quelque temps. Il utilise le videoInput de la bibliothèque pour obtenir l'entrée à partir de webcams. Il utilise DirectX, de sorte qu'il fonctionne avec presque tous les webcam. La capture des images avec DirectX
OriginalL'auteur Utkarsh Sinha
Une fois que vous créez le
cv::VideoCapture
vous devez donner un entier qui n'est pas une chaîne (depuis la chaîne implique l'entrée est un fichier).Pour ouvrir la caméra par défaut, ouvrez le flux avec
et il fonctionne parfaitement.
OriginalL'auteur Barnabas Szabolcs
CMAKE-GUI MSVC++10E, Vista 32 bits, OpenCV2.2
Il ressemble
HAVE_VIDEOINPUT/WITH_VIDEOINPUT
option ne fonctionne pas.Cependant d'ajouter:
/D HAVE_DSHOW /D HAVE_VIDEOINPUT
àCMAKE_CXX_FLAGS
, etCMAKE_C_FLAGS
a fait le tour pour moi (il y aura avertit en raison de macro redéfinitions).OriginalL'auteur plyr0