EXCELITAS TECHNOLOGIES logoEXCELITAS TECHNOLOGIES logo 1Python Software Development Kit
BrugermanualEXCELITAS TECHNOLOGIES Python Software Development KitEXCELITAS TECHNOLOGIES logo 2

Python Software Development Kit

PCO beder dig omhyggeligt at læse og følge instruktionerne i dette dokument.
For spørgsmål eller kommentarer, er du velkommen til at kontakte os til enhver tid.
telefon: +49 (0) 9441 2005 50
fax: +49 (0) 9441 2005 20
postadresse: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Tyskland
e-mail: info@pco.de
web: www.pco.de
pco.python brugervejledning 0.1.7
Udgivet december 2021
©Copyright Excelitas PCO GmbH
EXCELITAS TECHNOLOGIES Python Software Development Kit - ikon 1Dette værk er licenseret under Creative Commons Attribution-No Derivatives 4.0 International License. Til view en kopi af denne licens, besøg http://creativecommons.org/licenses/by-nd/4.0/ eller send et brev til Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

Generel

Python-pakken pco tilbyder alle funktioner til at arbejde med pco-kameraer, der er baseret på strømmen pco.sdk. Alle fælles biblioteker til kommunikation med kameraet og efterfølgende billedbehandling er inkluderet.

  • Nem at bruge kamera klasse
  • Kraftig API til pco.sdk
  • Billedoptagelse og -behandling med pco.optager

1.1 Installation
Installer fra pypi (anbefales):
$ pip installer pco
1.2 Grundlæggende brug
importer matplotlib.pyplot som plt
import pco
med pco.Camera() som cam:
cam.record()
billede, meta = cam.image()
plt.imshow(image, cmap='gray')
plt.show()EXCELITAS TECHNOLOGIES Python Software Development Kit - Grundlæggende brug1.3 Hændelses- og fejllogning
For at aktivere logningsoutput skal du oprette kameraobjektet med parameteren debuglevel=.
Fejlfindingsniveauet kan indstilles til en af ​​følgende værdier:

  • 'off' Deaktiverer alt output.
  • 'fejl' Viser kun fejlmeddelelser.
  • 'verbose' Viser alle beskeder.
  • 'ekstra verbose' Viser alle beskeder og værdier.

Standardfejlfindingsniveauet er 'fra'.
pco.Camera(debuglevel='verbose')

[][sdk] get_camera_type: OK.
Den valgfrie tidamp= parameter aktiverer en tag i det trykte output. Mulige værdier er: 'on' og 'off'. Standardværdien er 'off'.
pco.Camera(debuglevel='verbose', timestamp='på')

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

API dokumentation

Pco.Camera-klassen tilbyder følgende metoder:

  • record() genererer, konfigurerer og starter en ny optagerinstans.
  • stop() stopper den aktuelle optagelse.
  • close() lukker det aktuelle aktive kamera og frigiver de besatte ressourcer.
  • image() returnerer et billede fra optageren som numpy array.
  • images() returnerer alle optagede billeder fra optageren som en liste over numpy arrays.
  • image_average() returnerer det gennemsnitlige billede. Dette billede er beregnet ud fra alle optagede billeder i bufferen.
  • set_exposure_time() indstiller eksponeringstiden for kameraet.
  • wait_for_first_image() venter på det første tilgængelige billede i optagerens hukommelse.

Klassen pco.Camera har følgende variabel:

  • konfiguration

Klassen pco.Camera har følgende objekter:

  • sdk tilbyder direkte adgang til alle underliggende funktioner i pco.sdk.
  • optager giver direkte adgang til alle underliggende funktioner i pco.optager.

2.1 Metoder
Dette afsnit beskriver alle metoder, der tilbydes af pco.Camera-klassen.
2.1.1 Optag
Beskrivelse Opretter, konfigurerer og starter en ny optagerinstans. Hele kamerakonfigurationen skal indstilles, før du kalder record(). Kommandoen set_exposure_time() er den eneste undtagelse. Denne funktion har ingen indflydelse på optagerobjektet og kan hentes frem under optagelsen.
Prototype def record(self, number_of_images=1, mode='sequence'):
Parameter

Navn Beskrivelse
antal_af_billeder Indstiller antallet af billeder, der er tildelt i driveren. PC'ens RAM begrænser den maksimale værdi.
mode I 'sekvens'-tilstand blokerer denne funktion under optagelse. Optageren stopper automatisk, når antallet_af_billeder er nået. I 'sekvens ikke-blokerende'-tilstand er denne funktion ikke-blokerende. Status skal kontrolleres før læsning af et billede. Denne tilstand bruges til at læse billeder under optagelse, f.eks. miniaturebilleder.
I 'ring buffer'-tilstand er denne funktion ikke-blokerende. Status skal kontrolleres før læsning af et billede. Optageren stopper ikke optagelsen, når antallet_af_billeder er nået. Når dette sker, overskrives de ældste billeder.
I 'fifo'-tilstand er denne funktion ikke-blokerende. Status skal kontrolleres før læsning af et billede. Når antallet_af_billeder i fifo'en er nået, slettes følgende billeder, indtil billeder læses fra fifo'en.

2.1.2 Stop
Beskrivelse Stopper den aktuelle optagelse. I 'ring buffer' og 'fifo' tilstand skal denne funktion kaldes af brugeren. I tilstanden 'sekvens' og 'sekvens ikke blokerende' kaldes denne funktion automatisk frem, når antallet_af_billeder er nået.
Prototype def stop(selv):
2.1.3 Luk
Beskrivelse Lukker det aktiverede kamera og frigiver de blokerede ressourcer. Denne funktion skal kaldes, før applikationen afsluttes. Ellers forbliver ressourcerne besat.
Prototype def tæt (selv):
Denne funktion kaldes automatisk, hvis kameraobjektet er oprettet af with-sætningen. Et eksplicit kald til close() er ikke længere nødvendigt.
med pco.Camera() som cam: # gør nogle ting
2.1.4 Billede
Beskrivelse Returnerer et billede fra optageren. Billedtypen er en numpy.ndarray. Dette array er formet afhængigt af opløsningen og ROI af billedet.
Prototype def image(self, image_number=0, roi=Ingen):
Parameter

Navn Beskrivelse
billednummer Angiver nummeret på det billede, der skal læses. I tilstanden 'sequence' eller 'sequence non blocking' matcher optagerindekset image_number. Hvis billednummer er indstillet til 0xFFFFFFFF, kopieres det sidst optagede billede. Dette giver mulighed for at skabe en live preview under optagelse.
roi Indstiller interesseområdet. Kun dette område af billedet kopieres til returværdien.

Example >>> cam.record(antal_af_billeder=1, mode='sekvens')
>>> billede, meta = cam.image()
>>> skriv(billede) numpy.ndarray
>>> image.shape (2160, 2560)
>>> billede, metadata = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300, 300)
2.1.5 Billeder
Beskrivelse Returnerer alle optagede billeder fra optageren som en liste over numpy arrays.
Prototype def images(selv, roi=Ingen, blokstørrelse=Ingen):
Parameter

Navn Beskrivelse
roi Indstiller interesseområdet. Kun dette område af billedet kopieres til returværdien.
blokstørrelse Definerer det maksimale antal billeder, der returneres. Denne parameter er kun nyttig i 'fifo'-tilstand og under særlige forhold.

Example >>> cam.record(antal_af_billeder=20, mode='sekvens')
>>> billeder, metadata = cam.images()
>>> len(billeder) 20
>>> for billede i billeder:

print('Mean: {:7.2f} DN'.format(image.mean()))

Gennemsnit: 2147.64 DN
Gennemsnit: 2144.61 DN

>>> billeder = cam.images(roi=(1, 1, 300, 300))
>>> billeder[0].shape (300, 300)
2.1.6 Image_average
Beskrivelse Returnerer det gennemsnitlige billede. Dette billede er beregnet ud fra alle optagede billeder i bufferen.
Prototype def image_average(selv, roi=Ingen):
Parameter

Navn Beskrivelse
roi Definerer interesseområdet. Kun dette område af billedet kopieres til returværdien.

Example >>> cam.record(antal_af_billeder=100, mode='sekvens')
>>> avg = cam.image_average()
>>> avg = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Indstil_eksponeringstid
Beskrivelse Indstiller kameraets eksponeringstid.
Prototype def set_exposure_time(selv, eksponeringstid):
Parameter

Navn Beskrivelse
eksponeringstid Skal angives som flydende eller heltalsværdi i enheden 'sekund'. De underliggende værdier for funktionen sdk.set_delay_exposure_time(0, 'ms', tid, tidsbase) vil blive beregnet automatisk. Forsinkelsestiden er indstillet til 0.

Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Vent_på_første_billede
Beskrivelse Venter på det første tilgængelige billede i optagerens hukommelse. I optagertilstand 'sequence non blocking', 'ring buffer'. og 'fifo', returnerer funktionen record() med det samme. Derfor kan denne funktion bruges til at vente på billeder fra kameraet, før du kalder image(), images() eller image_average().
Prototype def wait_for_first_image(selv):
2.2 Variabel konfiguration
Kameraparametrene opdateres ved at ændre konfigurationsvariablen.
cam.configuration = {'eksponeringstid': 10e-3,
'roi': (1, 1, 512, 512),
'timestamp': 'ascii',
'pixelhastighed': 100_000_000,
'trigger': 'autosekvens',
'acquire': 'auto',
'metadata': 'on',
'binning': (1, 1)}
Variablen kan kun ændres, før funktionen record() kaldes. Det er en ordbog med et vist antal poster. Ikke alle mulige elementer skal specificeres. Følgende sample-koden ændrer kun 'pixelhastigheden' og påvirker ikke andre elementer i konfigurationen.
med pco.Camera() som cam:
cam.configuration = {'pixel rate': 286_000_000}
cam.record()

2.3 Objekter
Dette afsnit beskriver alle objekter, der tilbydes af klassen pco.Camera.
2.3.1 SDK
Objektet sdk giver direkte adgang til alle underliggende funktioner i pco.sdk.
>>> cam.sdk.get_temperature()
{'sensortemperatur': 7.0, 'kameratemperatur': 38.2, 'effekttemperatur': 36.7}
Alle returværdier fra sdk-funktioner er ordbøger. Ikke alle kameraindstillinger er i øjeblikket dækket af kameraklassen. Særlige indstillinger skal indstilles direkte ved at kalde den respektive sdk-funktion.
2.3.2 Optager
Objektet rec giver direkte adgang til alle underliggende funktioner i pco.optager. Det er ikke nødvendigt at kalde en optagerklassemetode direkte. Alle funktioner er fuldt dækket af metoderne i kameraklassen.

EXCELITAS TECHNOLOGIES Python Software Development Kit - QR cotehttps://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 Kina
+86 512 67634643
info@pco.cn
pco.cn

EXCELITAS TECHNOLOGIES logoEXCELITAS TECHNOLOGIES logo 1

Dokumenter/ressourcer

EXCELITAS TECHNOLOGIES Python Software Development Kit [pdfBrugermanual
Python Software Development Kit, Software Development Kit, Development Kit, Kit

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *