flyCapture SDK (Point Grey CCD-Kamera) mit Python

Einführung

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.

Umgebung

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).

Wie es fehlgeschlagen ist

Das Folgende ist die Methode, die fehlgeschlagen ist. Ich würde mich freuen, wenn Sie einen Kommentar abgeben könnten.

C Kap

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).

Python unter Ubuntu (erfolgreiche Methode)

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.

Wrapper-Bibliothek

Sobald Sie mit "python flyCapture" googeln, finden Sie die folgenden zwei Bibliotheken.

  1. jordens/pyflycapture2
  2. kbrafford/pyfly2

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.

Installationsverfahren

Einführung in das SDK

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.

Einführung von pyfly2

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 ...?

abschließend

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?) ...

[Ergänzung] Versuchen Sie es

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

flyCapture SDK (Point Grey CCD-Kamera) mit Python
Brüche in Python anzeigen
Laden Sie das Remote-Python-SDK mit IntelliJ
Berechnungsergebnis nach dem Dezimalpunkt in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
SendKeys in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Zeigen Sie in Python n Nachkommastellen an
[AWS IoT] Registrieren Sie Dinge in AWS IoT mithilfe des AWS IoT Python SDK
So konvertieren Sie Gleitkommazahlen in Python in Binärzahlen
Lesen und Schreiben von Gleitkommazahlen mit einfacher Genauigkeit in Python
Der süchtig machende Punkt des "Bayes-Denkens in Python"
Entwicklung des AWS SDK für Python (Boto3) in Visual Studio 2017