Hallo, hoffe mal das mir jemand helfen kann. Ich will ein Projekt mit Hilfe der Bibliothek OpenCV realisieren und habe OpenCV mit Hilfe dieses Tutorial eingepflegt: www.youtube.com/watch?v=cgo0UitHfp8 Und auch das Testprogramm des Tutorial kopiert. Code folgt weiter unten. Nun die Frage, beim debuggen bekomme ich folgeende Ausgaben: "New_OpenCV.exe": "C:\Users\....\Documents\Visual Studio 2010\Projects\New_OpenCV\Debug\New_OpenCV.exe" geladen, Symbole wurden geladen. "New_OpenCV.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file "New_OpenCV.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file "New_OpenCV.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file Das Programm "[4728] New_OpenCV.exe: Systemeigen" wurde mit Code -1073741701 (0xc000007b) beendet. kann mir jemand vielleicht sagen was der Fehler ist? Der Code: #include<opencv\cv.h> #include<opencv\highgui.h> using namespace cv; int main(){ //create matrix to store image Mat image; //initialize capture VideoCapture cap; cap.open(0); //create window to show the image namedWindow("window", 1); while(1){ //copy webcam stream to image cap>>image; //print image to screen imshow("window", image); //delay between frames waitKey(33); } return 0; }
Die Hinweise auf die nicht gefundenden PDB-Dateien sind nur Hinweise, keine Fehlermeldung. Das bedeutet nur, daß für die genannten DLLs keine Debugsymbole verfügbar sind. Lässt Du das Programm denn im Debugger einfach durchlaufen, oder gibts das beim Versuch des Single-Step? Hast Du das als natives C++-Programm übersetzt, oder etwa mit der MS-Perversion "C++/CLI"?
Ich habe das einfach so wie es ist im Debug durchlaufen lassen ohne Single-Step. Die Zweite Frage verstehe ich nicht so ganz. Die Bibliothek ist so wie sie ist von Sourcforge geladen und wie im Video beschrieben eingebunden. Und dann nach das Programm nach C++ standard geschrieben.
Manuel Volk schrieb: > Ich habe das einfach so wie es ist im Debug durchlaufen lassen ohne > Single-Step. Naja, Du könntest ja mal in irgendeine Zeile einen Breakpoint setzen und sehen, ob das Programm da vorbeikommt. Manuel Volk schrieb: > Die Zweite Frage verstehe ich nicht so ganz. Ich sehe mir das Video nicht an. Visual Studio enthält mehrere Compiler, einen echten C/C++-Compiler und einen Compiler für die .Net-"Sprache" namens "C++/CLI" bzw. "Managed C++". Beim Einrichten eines Projektes wählt man aus, welcher Compiler verwendet wird - und das solltest Du wissen, was Du da gemacht hast.
Vielleicht kann mir ja jemand sagen wie ich den Compiler in VS2010 Ultimate umstelle. Kann das selber egent wie nicht finden aber warum sollte das der Fehler sein bzw. hat das mit meiner eigentlichen Fehlerbeschreibung etwas zu tun?
Das stellt man nicht nachträglich um, das richtet man beim Erstellen eines neuen Projektes ein. Ob das mit Deinem Problem zu tun haben kann, weiß ich nicht, aber es ist ein ganz erheblicher Unterschied. Hast Du Dich denn jetzt mal mit dem ersten Teil beschäftigt? Dein Programm scheint in keiner Weise zu überprüfen, ob die verschiedenen angelegten Objekte überhaupt funktionieren bzw. gültig sind; würdest Du Dir die Objekte im Debugger ansehen bzw. mit dem Debugger in den zugehörigen Code bei der Erstellung steppen, könntest Du herausfinden, wo das Problem liegt. Ich vermute, daß weder cap.open(0); noch namedWindow("window", 1); funktionieren.
Ja habe ich der Fehler tritt auf sofort beim Start der Debug exe also auch wenn man es mit Einzelschritten durch steppt oder wenn man einen Breakpoint bei Mat image setze.
Manuel Volk schrieb: > Das Programm "[4728] New_OpenCV.exe: Systemeigen" wurde mit Code > -1073741701 (0xc000007b) beendet. Da ist doch ein konkreter Fehlercode. Dummerweise scheint der viele Ursachen haben zu können. Hier scheinen plausible Erklärungen zu stehen: http://stackoverflow.com/questions/10492037/the-application-was-unable-to-start-correctly-0xc000007b 'The most common cause of this error is trying to load a 64 bit DLL into a 32 bit process, or vice versa.' Hast du die richtigen Libs (64Bit) benutzt?
Ja genau das hatte ich auch vermutet. Ich lade im bin Verzeichnis der Bibliothek die für Version 64, da ich VS2010 64 bit Version installiert habe. Die lib lade ich aber in 32, da es ja für 32 bit kompeliert wird so weit ich das weiß. Bin halt so vorgegangen wie es im Video beschrieben wird. Ist das soweit korrekt oder steckt der Fehler dort egent wie?
habe das gerade nachvollzogen, ist genau so. Habe auch den Suchpfad auf X64\bin gesetzt und bekomme dann den Fehler wie bei dir wenn ich die 32Bit App erstelle und starte. Den Suchpfad auf X86 umgeschaltet, VS neu starten und es läuft. Es kann noch einen Fehler geben wenn das VideoCapture Device nicht geöffnet werden kann, das Beispiel verzichtet ja auf jegliche Fehlerbehandlung.
Ah bessten dank. Ja das war mal ein kleiner Fehler großes Problem. Danke. Wo ich schonmal dabei bin. Kann mir jemand ein Tutorial bzw. etwas empfehlen, um OpenCV soweit zu meistern das ich ein Gesichttracking programmiern kann und dann vielleicht noch durch Eigengesichter Gesichtsdetektion implementiern kann?
hier ist ein Schmöker der auch Face recognition behandelt: http://www.amazon.de/Mastering-OpenCV-Practical-Computer-Projects/dp/1849517827/ref=sr_1_4?ie=UTF8&qid=1359546389&sr=8-4#_ wie gut das ist kann ich dir aber nicht sagen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.