
Python programvareutviklingssett
Brukerhåndbok

Python programvareutviklingssett
PCO ber deg om å lese og følge instruksjonene i dette dokumentet nøye.
For spørsmål eller kommentarer, vennligst kontakt oss når som helst.
telefon: +49 (0) 9441 2005 50
faks: +49 (0) 9441 2005 20
postadresse: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Tyskland
e-post: info@pco.de
web: www.pco.de
pco.python brukerhåndbok 0.1.7
Utgitt desember 2021
©Copyright Excelitas PCO GmbH
Dette verket er lisensiert under Creative Commons Attribution-No Derivatives 4.0 International License. Til view en kopi av denne lisensen, besøk http://creativecommons.org/licenses/by-nd/4.0/ eller send et brev til Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
General
Python-pakken pco tilbyr alle funksjoner for arbeid med pco-kameraer som er basert på strømmen pco.sdk. Alle delte biblioteker for kommunikasjon med kamera og påfølgende bildebehandling er inkludert.
- Enkel å bruke kameraklasse
- Kraftig API til pco.sdk
- Bildeopptak og behandling med pco.opptaker
1.1 Installasjon
Installer fra pypi (anbefalt):
$ pip installer pco
1.2 Grunnleggende bruk
importer matplotlib.pyplot som plt
import pco
med pco.Camera() som kamera:
cam.record()
image, meta = cam.image()
plt.imshow(image, cmap='gray')
plt.show()
1.3 Hendelses- og feillogging
For å aktivere loggingsutgangen oppretter du kameraobjektet med parameteren debuglevel=.
Feilsøkingsnivået kan settes til en av følgende verdier:
- 'off' Deaktiverer all utgang.
- 'error' Viser bare feilmeldinger.
- 'verbose' Viser alle meldinger.
- 'ekstra verbose' Viser alle meldinger og verdier.
Standard feilsøkingsnivå er 'av'.
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type: OK.
Den valgfrie tidenamp= parameter aktiverer en tag i utskriften. Mulige verdier er: 'på' og 'av'. Standardverdien er 'av'.
pco.Camera(debuglevel='verbose', timestamp='på')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.
API-dokumentasjon
Pco.Camera-klassen tilbyr følgende metoder:
- record() genererer, konfigurerer og starter en ny opptakerforekomst.
- stop() stopper gjeldende innspilling.
- close() lukker det gjeldende aktive kameraet og frigjør de okkuperte ressursene.
- image() returnerer et bilde fra opptakeren som numpy array.
- images() returnerer alle innspilte bilder fra opptakeren som en liste over numpy arrays.
- image_average() returnerer det gjennomsnittlige bildet. Dette bildet er beregnet fra alle innspilte bilder i bufferen.
- set_exposure_time() angir eksponeringstiden for kameraet.
- wait_for_first_image() venter på det første tilgjengelige bildet i opptakerens minne.
Klassen pco.Camera har følgende variabel:
- konfigurasjon
Pco.Camera-klassen har følgende objekter:
- sdk tilbyr direkte tilgang til alle underliggende funksjoner i pco.sdk.
- opptaker gir direkte tilgang til alle underliggende funksjoner i pco.opptaker.
2.1 Metoder
Denne delen beskriver alle metodene som tilbys av pco.Camera-klassen.
2.1.1 Rekord
Beskrivelse Oppretter, konfigurerer og starter en ny opptakerforekomst. Hele kamerakonfigurasjonen må stilles inn før du kaller record(). Kommandoen set_exposure_time() er det eneste unntaket. Denne funksjonen har ingen innvirkning på opptakerobjektet og kan hentes frem under opptaket.
Prototype def record(self, number_of_images=1, mode='sequence'):
Parameter
| Navn | Beskrivelse |
| antall_bilder | Angir antall bilder som er tildelt i driveren. RAM-en til PC-en begrenser maksimumsverdien. |
| modus | I "sekvens"-modus blokkerer denne funksjonen under opptak. Opptakeren stopper automatisk når antall_bilder er nådd. I 'sekvens ikke-blokkerende'-modus er denne funksjonen ikke-blokkerende. Statusen må sjekkes før du leser et bilde. Denne modusen brukes til å lese bilder under opptak, f.eks. miniatyrbilder. I 'ring buffer'-modus er denne funksjonen ikke-blokkerende. Statusen må sjekkes før du leser et bilde. Opptakeren stopper ikke opptaket når antallet_bilder er nådd. Når dette skjer, overskrives de eldste bildene. I 'fifo'-modus er denne funksjonen ikke-blokkerende. Statusen må sjekkes før du leser et bilde. Når antall_bilder i fifoen er nådd, slettes følgende bilder inntil bilder leses fra fifoen. |
2.1.2 Stopp
Beskrivelse Stopper gjeldende innspilling. I 'ring buffer' og 'fifo' modus må denne funksjonen kalles opp av brukeren. I "sekvens" og "sekvens ikke blokkerende"-modus, blir denne funksjonen automatisk kalt opp når antall_bilder er nådd.
Prototype def stop(selv):
2.1.3 Lukk
Beskrivelse Lukker det aktiverte kameraet og frigjør de blokkerte ressursene. Denne funksjonen må kalles opp før applikasjonen avsluttes. Ellers forblir ressursene okkuperte.
Prototype def close(selv):
Denne funksjonen kalles automatisk hvis kameraobjektet er opprettet av with-setningen. Et eksplisitt kall til close() er ikke lenger nødvendig.
med pco.Camera() som cam: # gjør noen ting
2.1.4 Bilde
Beskrivelse Returnerer et bilde fra opptakeren. Bildetypen er en numpy.ndarray. Denne matrisen er formet avhengig av oppløsningen og ROI til bildet.
Prototype def image(self, image_number=0, roi=Ingen):
Parameter
| Navn | Beskrivelse |
| bildenummer | Angir nummeret på bildet som skal leses. I "sekvens" eller "sekvens ikke blokkerende"-modus, samsvarer opptakerindeksen med image_number. Hvis image_number er satt til 0xFFFFFFFF, kopieres det sist innspilte bildet. Dette gjør det mulig å lage en live preview mens du spiller inn. |
| avkastning | Angir interesseområdet. Bare denne delen av bildet kopieres til returverdien. |
Example >>> cam.record(number_of_images=1, mode='sequence')
>>> bilde, meta = cam.image()
>>> skriv(bilde) numpy.ndarray
>>> image.shape (2160, 2560)
>>> bilde, metadata = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300, 300)
2.1.5 XNUMX bilder
Beskrivelse Returnerer alle innspilte bilder fra opptakeren som en liste over numpy arrays.
Prototype def images(selv, roi=Ingen, blokkstørrelse=Ingen):
Parameter
| Navn | Beskrivelse |
| avkastning | Angir interesseområdet. Bare denne delen av bildet kopieres til returverdien. |
| blokkstørrelse | Definerer maksimalt antall bilder som returneres. Denne parameteren er kun nyttig i 'fifo'-modus og under spesielle forhold. |
Example >>> cam.record(number_of_images=20, mode='sequence')
>>> bilder, metadata = cam.images()
>>> len(bilder) 20
>>> for bilde i bilder:
…
print('Mean: {:7.2f} DN'.format(image.mean()))
…
Gjennomsnitt: 2147.64 DN
Gjennomsnitt: 2144.61 DN
…
>>> bilder = cam.images(roi=(1, 1, 300, 300))
>>> bilder[0].shape (300, 300)
2.1.6 Bildegjennomsnitt
Beskrivelse Returnerer gjennomsnittsbildet. Dette bildet er beregnet fra alle innspilte bilder i bufferen.
Prototype def image_average(self, roi=Ingen):
Parameter
| Navn | Beskrivelse |
| avkastning | Definerer interesseområdet. Bare denne delen av bildet kopieres til returverdien. |
Example >>> cam.record(number_of_images=100, mode='sequence')
>>> avg = cam.image_average()
>>> avg = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Set_exposure_time
Beskrivelse Stiller inn eksponeringstiden til kameraet.
Prototype def set_exposure_time(selv, eksponeringstid):
Parameter
| Navn | Beskrivelse |
| eksponeringstid | Må angis som flytende eller heltallsverdi i enheten 'sekund'. De underliggende verdiene for funksjonen sdk.set_delay_exposure_time(0, 'ms', time, timebase) vil bli beregnet automatisk. Forsinkelsestiden er satt til 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Vent_på_første_bilde
Beskrivelse Venter på det første tilgjengelige bildet i opptakerens minne. I opptakermodus 'sequence non blocking', 'ring buffer'. og 'fifo', funksjonen record() returnerer umiddelbart. Derfor kan denne funksjonen brukes til å vente på bilder fra kameraet før du kaller image(), images() eller image_average().
Prototype def wait_for_first_image(selv):
2.2 Variabel konfigurasjon
Kameraparametrene oppdateres ved å endre konfigurasjonsvariabelen.
cam.configuration = {'eksponeringstid': 10e-3,
'roi': (1, 1, 512, 512),
'timestamp': 'ascii',
'pikselhastighet': 100_000_000,
'trigger': 'autosekvens',
'acquire': 'auto',
'metadata': 'på',
'binning': (1, 1)}
Variabelen kan bare endres før funksjonen record() kalles. Det er en ordbok med et visst antall oppføringer. Ikke alle mulige elementer må spesifiseres. Følgende sample-koden endrer bare 'pikselhastigheten' og påvirker ikke noen andre elementer i konfigurasjonen.
med pco.Camera() som kamera:
cam.configuration = {'pixel rate': 286_000_000}
cam.record()
…
2.3 Objekter
Denne delen beskriver alle objekter som tilbys av pco.Camera-klassen.
2.3.1 SDK
Objektet sdk gir direkte tilgang til alle underliggende funksjoner i pco.sdk.
>>> cam.sdk.get_temperature()
{'sensortemperatur': 7.0, 'kameratemperatur': 38.2, 'strømtemperatur': 36.7}
Alle returverdier fra sdk-funksjoner er ordbøker. Ikke alle kamerainnstillinger dekkes for øyeblikket av kameraklassen. Spesielle innstillinger må settes direkte ved å ringe den respektive sdk-funksjonen.
2.3.2 Opptaker
Objektet rec gir direkte tilgang til alle underliggende funksjoner i pco.opptaker. Det er ikke nødvendig å kalle en opptakerklassemetode direkte. Alle funksjoner dekkes fullt ut av metodene i kameraklassen.
https://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 asia +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco Kina +86 512 67634643 info@pco.cn pco.cn |


Dokumenter / Ressurser
![]() | Python programvareutviklingssett |
Referanser
- Brukerhåndbokmanual.tools

