Das flyCapture SDK ist ein SDK für CCD-Kameras von Point Grey. Es unterstützt offiziell Windows und Linux und scheint C / C ++ / C # als Sprache zu unterstützen. Dieses Mal wollte ich C ++ aus persönlichen Gründen nicht verwenden, daher wollte ich eine Umgebung in einer anderen Sprache als C ++ erstellen. Wenn ich das Ergebnis zuerst schreibe, rang C # ungefähr eine Stunde lang und gab auf. Python konnte unter Verwendung einer inoffiziellen Bibliothek auf Ubuntu ausgeführt werden. Das Folgende ist ein Memorandum über Umweltkonstruktionen.
Dieses Mal ist die Kamera mit dem Windows-Computer verbunden. Ubuntu wurde auf VMWare vorbereitet, da ich aufgrund der IEEE1394-Karte keinen anderen PC verwenden konnte. ** VMWare kann jedoch keine mit IEEE1394 verbundenen Kameras verarbeiten. ** Also habe ich endlich die Flea3-Kamera verwendet (in diesem Fall hätte ich einen anderen Ubuntu-PC verwenden sollen, aber infolgedessen könnte Ubuntu auf VMWare auch damit umgehen).
Das Folgende ist die Methode, die fehlgeschlagen ist. Ich würde mich freuen, wenn Sie einen Kommentar abgeben könnten.
Es sollte offiziell vom SDK unterstützt werden, daher dachte ich, es wäre einfach zu handhaben, aber es hat nicht funktioniert.
Die Installation selbst löscht .exe und installiert es. Das Problem ist, dass ich nicht wusste, welche DLL ich zum Verweis auf Arbeit hinzufügen soll.
Als ich FlyCapture2Managed_v140.dll
hinzufügte, konnte ich den Beispielcode selbst erstellen, aber als ich ihn ausführte, bekam ich einen ??? Fehler wie "Die abhängige DLL kann nicht geladen werden". Ich habe versucht, es dem PFAD hinzuzufügen und es der Referenz hinzuzufügen, aber ich habe aufgegeben. Ich kann nicht viel Dokumentation finden, selbst wenn ich sie mit "Fly Capture C #" überprüfe. Können Sie es gehorsam in C ++ schreiben? ??
** C # sollte jedoch auf jeden Fall funktionieren. Weil es offiziell unterstützt werden sollte.
Lass es mich wissen, bitte ... **
python on Windows
Nachdem ich Ubuntu erfolgreich abgeschlossen hatte, versuchte ich es unter Windows auszuführen. Zu dieser Zeit war es eine Tatsache, dass ich dachte "Nun, kann ich mich mit Ubuntu bewegen?" ()
Erstens unterstützt das SDK Python offiziell nicht. Ich entschied mich für die dort veröffentlichte inoffizielle Wrapper-Bibliothek. Es gibt mehrere Bibliotheken (später beschrieben), aber die, die unter Windows zu funktionieren schien, war "pyFly2". Der Grund ist, dass es in setup.py
eine Beschreibung für Windows gibt.
Also habe ich es gemäß README eingeführt, aber ich bin in den Fehler "Fehler: vcvarsall.bat konnte nicht gefunden werden" geraten. Dies ist ein Fehler, der in einer Bibliothek auftritt, die unabhängig von flyCapture kompiliert werden muss. Also habe ich "VC ++ 9.0" eingegeben und verschiedene Dinge ausprobiert, aber ich habe den Fehler "ValueError: [u’path"] "" aufgegeben. Dieses Problem tritt häufig auf, wenn Sie es nachschlagen. Es scheint also, dass Sie es lösen können, wenn Sie Ihr Bestes geben. Es ist jedoch Zeitverschwendung, Zeit hier zu verbringen, da es ein weiterer Schritt voraus ist, ob die Bibliothek funktioniert, auch wenn sie kompiliert werden kann (sagen Sie es sich selbst). Ich tat).
Dies ist die Methode, die ich übernommen habe. Einführung einer Wrapper-Bibliothek für Python auf Ubuntu. Ich habe gerade das Beispiel ausgeführt / gelesen, aber es scheint einfach zu handhaben zu sein.
Sobald Sie mit "python flyCapture" googeln, finden Sie die folgenden zwei Bibliotheken.
Ich habe zuerst pyflycapture2 ausprobiert, aber wohin sollen die Kameraeinstellungen im Beispielcode übertragen werden? Ich habe einen Fehler bekommen. Ich war mir nicht sicher, aber pyfly2 hat gut funktioniert, also habe ich beschlossen, es vorerst zu verwenden.
Grundsätzlich ist es einfach, wenn Sie den Installationsvorgang befolgen. Die zu beachtenden Punkte sind wie folgt.
For specific details about using FlyCapture and Linux with a USB 3.0 camera, see TAN2012007 Using Linux with USB 3.0.
Es heißt, die USB-Puffergröße von 2 MB auf 1000 MB zu ändern. Wenn Sie jedoch versuchen, mit einer Einstellung zu erfassen, die eine bestimmte Auflösung (Datengröße übertragen) überschreitet, ohne dies zu tun, wird das Programm abnormal beendet. Ich kämpfte, ohne es zu bemerken (obwohl es ganz am Anfang der Seite geschrieben wurde ...) Wahrscheinlich gibt es kein Problem mit einer IEEE1394-Kamera (aber ich habe es aufgrund der oben genannten Umstände nicht ausprobiert)
Wenn Sie mit "$ flycap" richtig erfassen können, sind Sie erfolgreich. Übrigens konnte ich auch mit einem mit VMWare gemounteten (?) USB-Gerät richtig erfassen.
Die Einführung in Ubuntu hat funktioniert, wenn ich sie mit git geklont und README befolgt habe.
Übrigens scheint der in setup.py
beschriebene SDK-Pfad nicht geändert werden zu müssen, wenn er normal eingefügt wird. Hat die Kopie der DLL auch Sinn gemacht? Es scheint, dass es funktioniert hat, ohne es zu tun ...?
Ich habe ein kleines Beispiel von pyfly2 gelesen, aber es scheint, als wolle ich "example_opencv_integration.py" in Don Pisha. Wenn Sie es mit Numpy bekommen können, können Sie alles andere tun. Ein weiteres Problem ist das Ändern und Synchronisieren von Einstellungen. Ich bin gespannt, wie viel pyfly2 die API umschließt (um die gesamte C-API?) ...
Es war möglich, Parameter wie die Verstärkung einzustellen, aber es gibt ein Problem beim Einstellen der Auflösung (und wahrscheinlich der Bildrate). Es wird durch den Aufzählungstyp angegeben, aber die maximale Auflösung beträgt "_1600x1200Y16". Ich verwende derzeit eine Kamera der Flea3-Serie mit einer maximalen Auflösung von "2000x2000" oder höher, daher kann ich sie nicht angeben. Ich wünschte, es gäbe eine Methode, die direkt als Zahl angegeben werden könnte ... Vielleicht ist die SDK-Version zum Zeitpunkt der Wrapper-Entwicklung alt, daher habe ich das Gefühl, dass ich damit umgehen kann, wenn ich sie ein wenig ändere, aber ich habe die Energie, mein Bestes zu geben ... Nun, ich denke, dass es nicht viele Situationen gibt, in denen es notwendig ist, die Auflösung dynamisch zu ändern. Ich frage mich, ob ich es aus dem offiziellen Beispielantrag ändern sollte.
Recommended Posts