EXCELITAS TECHNOLOGIES-LogoEXCELITAS TECHNOLOGIES-Logo 1Python-Softwareentwicklungskit
BedienungsanleitungEXCELITAS TECHNOLOGIES Python Software Development KitEXCELITAS TECHNOLOGIES-Logo 2

Python-Softwareentwicklungskit

PCO bittet Sie, die Anweisungen in diesem Dokument sorgfältig zu lesen und zu befolgen.
Bei Fragen oder Anmerkungen können Sie sich jederzeit gerne an uns wenden.
Telefon: +49 (0) 9441 2005 50
Telefax: +49 (0) 9441 2005 20
Postanschrift: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Deutschland
E-Mail: info@pco.de
web: www.pco.de
pco.python Benutzerhandbuch 0.1.7
Erschienen im Dezember 2021
©Copyright Excelitas PCO GmbH
EXCELITAS TECHNOLOGIES Python Software Development Kit - Symbol 1Dieses Werk ist lizenziert unter der Creative Commons Attribution-No Derivatives 4.0 International License. view Eine Kopie dieser Lizenz finden Sie unter http://creativecommons.org/licenses/by-nd/4.0/ oder senden Sie einen Brief an Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

Allgemein

Das Python-Paket pco bietet alle Funktionen für die Arbeit mit pco-Kameras, die auf dem aktuellen pco.sdk. Alle gemeinsam genutzten Bibliotheken für die Kommunikation mit der Kamera und die anschließende Bildverarbeitung sind enthalten.

  • Einfach zu bedienende Kameraklasse
  • Leistungsstarke API für pco.sdk
  • Bildaufnahme und -verarbeitung mit pco.recorder

1.1 Installation
Von pypi installieren (empfohlen):
$ pip install pco
1.2 Grundlegende Verwendung
importiere matplotlib.pyplot als plt
pco importieren
mit pco.Camera() als Kamera:
cam.aufzeichnung()
Bild, Meta = cam.image()
plt.imshow(Bild, cmap='grau')
plt.anzeigen()EXCELITAS TECHNOLOGIES Python Software Development Kit - Grundlegende Verwendung1.3 Ereignis- und Fehlerprotokollierung
Um die Protokollierungsausgabe zu aktivieren, erstellen Sie das Kameraobjekt mit dem Parameter debuglevel=.
Die Debugebene kann auf einen der folgenden Werte eingestellt werden:

  • „Aus“ Deaktiviert die gesamte Ausgabe.
  • „Fehler“ Zeigt nur Fehlermeldungen an.
  • „verbose“ Zeigt alle Nachrichten an.
  • „extra ausführlich“ Zeigt alle Nachrichten und Werte an.

Der Standard-Debuglevel ist „Aus“.
pco.Camera(debuglevel='verbose')

[][sdk] get_camera_type: OK.
Die optionale Zeitamp= Parameter aktiviert eine tag in der gedruckten Ausgabe. Mögliche Werte sind: „on“ und „off“. Der Standardwert ist „off“.
pco.Camera(debuglevel='verbose', Zeitstempelamp='ein')

[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.

API-Dokumentation

Die Klasse pco.Camera bietet die folgenden Methoden:

  • record() generiert, konfiguriert und startet eine neue Recorder-Instanz.
  • stop() stoppt die aktuelle Aufnahme.
  • close() schließt die aktuell aktive Kamera und gibt die belegten Ressourcen frei.
  • image() gibt ein Bild vom Rekorder als Numpy-Array zurück.
  • images() gibt alle aufgezeichneten Bilder vom Rekorder als Liste von Numpy-Arrays zurück.
  • image_average() gibt das gemittelte Bild zurück. Dieses Bild wird aus allen aufgezeichneten Bildern im Puffer berechnet.
  • set_exposure_time() legt die Belichtungszeit für die Kamera fest.
  • wait_for_first_image() wartet auf das erste verfügbare Bild im Rekorderspeicher.

Die Klasse pco.Camera hat die folgende Variable:

  • Konfiguration

Die Klasse pco.Camera hat die folgenden Objekte:

  • sdk bietet direkten Zugriff auf alle zugrunde liegenden Funktionen der pco.sdk.
  • bietet direkten Zugriff auf alle zugrunde liegenden Funktionen des pco.recorder.

2.1 Methoden
Dieser Abschnitt beschreibt alle von der Klasse pco.Camera angebotenen Methoden.
2.1.1 Aufzeichnen
Beschreibung Erstellt, konfiguriert und startet eine neue Rekorderinstanz. Vor dem Aufruf von record() muss die gesamte Kamerakonfiguration festgelegt sein. Einzige Ausnahme ist der Befehl set_exposure_time(). Diese Funktion hat keine Auswirkung auf das Rekorderobjekt und kann während der Aufzeichnung aufgerufen werden.
Prototyp def Datensatz (selbst, Anzahl_der_Bilder=1, Modus='Sequenz'):
Parameter

Name Beschreibung
Anzahl_Bilder Legt die Anzahl der im Treiber zugewiesenen Bilder fest. Der Arbeitsspeicher des PCs begrenzt den Maximalwert.
Modus Im Modus „Sequenz“ blockiert diese Funktion während der Aufnahme. Der Rekorder stoppt automatisch, wenn die Anzahl der Bilder erreicht ist. Im Modus „Sequenz nicht blockierend“ blockiert diese Funktion nicht. Der Status muss vor dem Lesen eines Bildes überprüft werden. Dieser Modus wird verwendet, um Bilder während der Aufnahme zu lesen, z. B. Miniaturansichten.
Im Ringpuffermodus ist diese Funktion nicht blockierend. Der Status muss vor dem Lesen eines Bildes überprüft werden. Der Rekorder stoppt die Aufnahme nicht, wenn die Anzahl der Bilder erreicht ist. Sobald dies geschieht, werden die ältesten Bilder überschrieben.
Im FIFO-Modus ist diese Funktion nicht blockierend. Der Status muss vor dem Lesen eines Bildes überprüft werden. Wenn die Anzahl der Bilder im FIFO erreicht ist, werden die folgenden Bilder gelöscht, bis Bilder aus dem FIFO gelesen werden.

2.1.2 Stop
Beschreibung Stoppt die aktuelle Aufnahme. Im Modus „Ringpuffer“ und „FIFO“ muss diese Funktion vom Benutzer aufgerufen werden. Im Modus „Sequenz“ und „Sequenz nicht blockierend“ wird diese Funktion automatisch aufgerufen, wenn die Anzahl der Bilder erreicht ist.
Prototyp def Stopp (selbst):
2.1.3 Schließen
Beschreibung Schließt die aktivierte Kamera und gibt die blockierten Ressourcen frei. Diese Funktion muss vor dem Beenden der Anwendung aufgerufen werden. Ansonsten bleiben die Ressourcen belegt.
Prototyp def schließen(selbst):
Diese Funktion wird automatisch aufgerufen, wenn das Kameraobjekt durch die with-Anweisung erzeugt wird. Ein expliziter Aufruf von close() ist nicht mehr notwendig.
mit pco.Camera() als Cam: # mach ein paar Sachen
2.1.4 Bild
Beschreibung Gibt ein Bild vom Rekorder zurück. Der Typ des Bildes ist ein Numpy.ndarray. Dieses Array wird abhängig von der Auflösung und dem ROI des Bildes geformt.
Prototyp def Bild (selbst, Bildnummer = 0, roi = Keine):
Parameter

Name Beschreibung
Bildnummer Gibt die Nummer des zu lesenden Bildes an. Im Modus „Sequenz“ oder „Sequenz nicht blockierend“ entspricht der Rekorderindex der Bildnummer. Wenn die Bildnummer auf 0xFFFFFFFF gesetzt ist, wird das zuletzt aufgenommene Bild kopiert. Dies ermöglicht die Erstellung eines Live-Preview während der Aufnahme.
roi Legt den Bereich fest, der von Interesse ist. Nur dieser Bereich des Bildes wird in den Rückgabewert kopiert.

Example >>> cam.record(Anzahl_der_Bilder=1, Modus='Sequenz')
>>> Bild, Meta = Kamera.Bild()
>>> Typ (Bild) numpy.ndarray
>>> Bildform (2160, 2560)
>>> Bild, Metadaten = Kamera.Bild(roi=(1, 1, 300, 300))
>>> Bildform (300, 300)
2.1.5 Bilder
Beschreibung Gibt alle aufgezeichneten Bilder vom Rekorder als Liste von Numpy-Arrays zurück.
Prototyp def Bilder (selbst, roi=Keine, Blockgröße=Keine):
Parameter

Name Beschreibung
roi Legt den Bereich fest, der von Interesse ist. Nur dieser Bereich des Bildes wird in den Rückgabewert kopiert.
Blockgröße Definiert die maximale Anzahl der zurückgegebenen Bilder. Dieser Parameter ist nur im FIFO-Modus und unter besonderen Bedingungen nützlich.

Example >>> cam.record(Anzahl_der_Bilder=20, Modus='Sequenz')
>>> Bilder, Metadaten = cam.images()
>>> Länge (Bilder) 20
>>> für Bild in Bildern:

drucken('Mittelwert: {:7.2f} DN'.format(bild.mittelwert()))

Mittelwert: 2147.64 DN
Mittelwert: 2144.61 DN

>>> Bilder = Kamera.Bilder(roi=(1, 1, 300, 300))
>>> Bilder[0].Form (300, 300)
2.1.6 Bilddurchschnitt
Beschreibung Gibt das gemittelte Bild zurück. Dieses Bild wird aus allen aufgezeichneten Bildern im Puffer berechnet.
Prototyp def image_average(selbst, roi=Keine):
Parameter

Name Beschreibung
roi Definiert den Bereich, der von Interesse ist. Nur dieser Bereich des Bildes wird in den Rückgabewert kopiert.

Example >>> cam.record(Anzahl_der_Bilder=100, Modus='Sequenz')
>>> Durchschnitt = cam.image_average()
>>> Durchschnitt = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Belichtungszeit einstellen
Beschreibung Legt die Belichtungszeit der Kamera fest.
Prototyp def set_exposure_time(selbst, Belichtungszeit):
Parameter

Name Beschreibung
Expositionszeit Muss als Float- oder Integer-Wert in der Einheit „Sekunde“ angegeben werden. Die zugrundeliegenden Werte für die Funktion sdk.set_delay_exposure_time(0, „ms“, Zeit, Zeitbasis) werden automatisch berechnet. Die Verzögerungszeit wird auf 0 gesetzt.

Example >>> cam.Belichtungszeit einstellen(0.001)
>>> cam.Belichtungszeit einstellen(1e-3)
2.1.8 Auf_das_erste_Bild_warten
Beschreibung Wartet auf das erste verfügbare Bild im Rekorderspeicher. Im Rekordermodus „Sequenz nicht blockierend“, „Ringpuffer“ und „FIFO“ kehrt die Funktion record() sofort zurück. Daher kann diese Funktion verwendet werden, um auf Bilder von der Kamera zu warten, bevor image(), images() oder image_average() aufgerufen werden.
Prototyp def warte_auf_erstes_Bild(selbst):
2.2 Variablenkonfiguration
Durch Änderung der Konfigurationsvariable werden die Kameraparameter aktualisiert.
cam.configuration = {'Belichtungszeit': 10e-3,
'roi': (1, 1, 512, 512),
'zeitlichamp': 'ascii',
'Pixelrate': 100_000_000,
'Trigger': 'Automatische Sequenz',
'erwerben': 'auto',
'Metadaten': 'ein',
'binning': (1, 1)}
Die Variable kann nur vor dem Aufruf der Funktion record() geändert werden. Es handelt sich um ein Wörterbuch mit einer bestimmten Anzahl von Einträgen. Es müssen nicht alle möglichen Elemente angegeben werden. Die folgendenampDer Code ändert lediglich die „Pixelrate“ und hat keinen Einfluss auf andere Elemente der Konfiguration.
mit pco.Camera() als Kamera:
cam.configuration = {'Pixelrate': 286_000_000}
cam.aufzeichnung()

2.3 Objekte
Dieser Abschnitt beschreibt alle von der Klasse pco.Camera angebotenen Objekte.
2.3.1 SDK
Das Objekt-SDK ermöglicht den direkten Zugriff auf alle zugrunde liegenden Funktionen des pco.sdk.
>>> cam.sdk.get_temperature()
{'Sensortemperatur': 7.0, 'Kameratemperatur': 38.2, 'Stromtemperatur': 36.7}
Alle Rückgabewerte von SDK-Funktionen sind Wörterbücher. Derzeit werden nicht alle Kameraeinstellungen von der Kameraklasse abgedeckt. Spezielle Einstellungen müssen direkt durch Aufruf der jeweiligen SDK-Funktion festgelegt werden.
2.3.2 Rekorder
Das Objekt rec bietet direkten Zugriff auf alle zugrunde liegenden Funktionen des pco.recorder. Es ist nicht notwendig, eine Methode der Recorder-Klasse direkt aufzurufen. Alle Funktionen werden vollständig durch die Methoden der Kamera-Klasse abgedeckt.

EXCELITAS TECHNOLOGIES Python Software Development Kit - QR-Codehttps://www.pco.de/applications/

pco europa
+49 9441 2005 50
info@pco.de
pco.de
pco amerika
+1 866 678 4566
info@pco-tech.com
pco-tech.com
pco asien
+65 6549 7054
info@pco-imaging.com
pco-imaging.com
pco china
+86 512 67634643
info@pco.cn
pco.cn

EXCELITAS TECHNOLOGIES-LogoEXCELITAS TECHNOLOGIES-Logo 1

Dokumente / Ressourcen

EXCELITAS TECHNOLOGIES Python Software Development Kit [pdf] Benutzerhandbuch
Python Software-Entwicklungskit, Software-Entwicklungskit, Entwicklungskit, Kit

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *