Échec de l'Assertion (de la taille.largeur>0 && size.hauteur>0)
Je suis à l'aide de Visual Studio Express 2013 avec OpenCV 2.4.7
, à la suite de cette tutoriel.
J'ai passé des heures à chercher sur le web pour trouver des solutions, y compris toutes les questions pertinentes, AFIN d'. J'ai essayé:
- la valeur de retour de
VideoCapture::open
est de 1 - l'extension de la waitKey() retard à 50ms et plus tard 500ms
- cadre aux dimensions de la fenêtre
- la création d'un autre projet sur Visual C++
- ouverture d'une image existante au lieu de la lecture de la caméra (même erreur)
mais pas de chance, s'il vous plaît aider!
Voici mon code:
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
Mat image;
VideoCapture cap;
int camOpen = cap.open(CV_CAP_ANY);
namedWindow("window", CV_WINDOW_AUTOSIZE);
while (true) {
cap >> image;
imshow("window", image);
//delay 33ms
waitKey(33);
}
}
Comme je l'ai compilé et exécuté, j'ai eu l'erreur suivante:
OpenCV Erreur: échec de l'Assertion (de la taille.largeur>0 && size.hauteur>0) en cv::imshow, fichier ........\opencv\modules\highgui\src\window.cpp ligne 261
Erreur se produit à la ligne imshow("window", image);
. Lorsque j'ai fait remarquer, il n'y a pas de plaintes.
MISES à jour:
Une plausible explication sur les raisons de cette erreur est que ma webcam prend du temps à démarrer, c'est pourquoi l'image.empty() est fidèle à l'origine, d'où le abort() la fonction a été appelée à quitter le programme.
Avec le code
if (!image.empty()) {
imshow("window", image);
}
nous pouvons attendre que l'appareil photo pour démarrer
namedWindow("xyz", CV_WINDOW_AUTOSIZE)
, il sera beaucoup plus facile pour vous (et, plus tard, d'autres) de lire et de suivre.. Venir à vous question, on pourrait mettre des points d'arrêt après chaque ligne et de me dire exactement où le problème se produit..?édité question comme demandé, laissez-moi savoir si toute autre information supplémentaire serait utile
avait mis "xyz" comme un exemple. Pour cet exemple, vous devez mettre "fenêtre" (t) est le nom de la fenêtre et, partant, doit être la même dans
namedWindow
et imshow
.Vérifiez les paramètres de votre webcam , si elle fonctionne . Si vous utilisez Skype ou tout autre logiciel de la webcam, de vérifier s'il fonctionne .
OriginalL'auteur John Yeung | 2013-12-29
Vous devez vous connecter pour publier un commentaire.
J'ai essayé votre code et pour moi ça fonctionne (il permet de visualiser le courant de la webcam d'entrée)!
J'ai couru sur Visual Studio 2012 Ultimate avec OpenCV 2.4.7.
...
L'erreur se produit parce que l'image est vide, alors essayez ceci:
Peut-être la première image que vous recevez de votre webcam est vide. Dans ce cas, imshow ne sera pas jeter une erreur. Donc j'espère que la prochaine entrée images ne sont pas vides.
OriginalL'auteur Dennis
Ce faire:
Ou vous pouvez essayer de modifier le:
à
pouvez-vous le corriger et me dire ce qui se passe après qui?
pouvez-vous vérifier les mises à jour de réponse?
yep j'ai eu ce code avant, mais ne le montrent pas à la question de la simplicité et de la clarté. mais à peu près tous, il n'a été imprimé le message d'erreur
Peut le opencv source de l'être intégré sur n'importe quel emplacement? Je pense que le principal problème réside là. Ou peut-être un bug sur Opencv 2.4.9 ?
OriginalL'auteur 72DFBF5B A0DF5BE9
Faire cela, il va travailler pour vous pour vous.
OriginalL'auteur ravindra singh rathor