

Python Software Development Kit
Användarmanual

Python Software Development Kit
PCO ber dig att noggrant läsa och följa instruktionerna i detta dokument.
För frågor eller kommentarer är du välkommen att kontakta oss när som helst.
telefon: +49 (0) 9441 2005 50
fax: +49 (0) 9441 2005 20
postadress: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Tyskland
e-post: info@pco.de
web: www.pco.de
pco.python användarmanual 0.1.7
Släppt december 2021
©Copyright Excelitas PCO GmbH
Detta arbete är licensierat under Creative Commons Attribution-No Derivatives 4.0 International License. Till view en kopia av denna licens, besök http://creativecommons.org/licenses/by-nd/4.0/ eller skicka ett brev till Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Allmän
Python-paketet pco erbjuder alla funktioner för att arbeta med pco-kameror som är baserade på strömmen pco.sdk. Alla delade bibliotek för kommunikationen med kameran och efterföljande bildbehandling ingår.
- Lättanvänd kameraklass
- Kraftfullt API till pco.sdk
- Bildinspelning och bearbetning med pco.recorder
1.1 Installation
Installera från pypi (rekommenderas):
$ pip installera pco
1.2 Grundläggande användning
importera matplotlib.pyplot som plt
importera pco
med pco.Camera() som cam:
cam.record()
bild, meta = cam.image()
plt.imshow(bild, cmap='grå')
plt.show()
1.3 Händelse- och felloggning
För att aktivera loggningsutgången, skapa kameraobjektet med parametern debuglevel=.
Felsökningsnivån kan ställas in på ett av följande värden:
- 'off' Inaktiverar all utmatning.
- 'error' Visar endast felmeddelanden.
- 'verbose' Visar alla meddelanden.
- 'extra verbose' Visar alla meddelanden och värden.
Standardfelsökningsnivån är 'av'.
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type: OK.
Den valfria tidenamp= parameter aktiverar en tag i den tryckta utskriften. Möjliga värden är: 'på' och 'av'. Standardvärdet är 'av'.
pco.Camera(debuglevel='verbose', timestamp='på')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.
API dokumentation
Klassen pco.Camera erbjuder följande metoder:
- record() genererar, konfigurerar och startar en ny inspelaresinstans.
- stop() stoppar den aktuella inspelningen.
- close() stänger den aktuella aktiva kameran och släpper de upptagna resurserna.
- image() returnerar en bild från inspelaren som numpy array.
- images() returnerar alla inspelade bilder från inspelaren som en lista med numpy arrays.
- image_average() returnerar den genomsnittliga bilden. Denna bild beräknas från alla inspelade bilder i bufferten.
- set_exposure_time() ställer in exponeringstiden för kameran.
- wait_for_first_image() väntar på den första tillgängliga bilden i brännarens minne.
Klassen pco.Camera har följande variabel:
- konfiguration
Klassen pco.Camera har följande objekt:
- sdk erbjuder direkt tillgång till alla underliggande funktioner i pco.sdk.
- inspelare ger direkt tillgång till alla underliggande funktioner i pco.recorder.
2.1 Metoder
Det här avsnittet beskriver alla metoder som erbjuds av klassen pco.Camera.
2.1.1 Rekord
Beskrivning Skapar, konfigurerar och startar en ny inspelaresinstans. Hela kamerakonfigurationen måste ställas in innan du anropar record(). Kommandot set_exposure_time() är det enda undantaget. Denna funktion har ingen effekt på brännarens objekt och kan tas fram under inspelningen.
Prototyp def record(self, number_of_images=1, mode='sequence'):
Parameter
| Namn | Beskrivning |
| antal_bilder | Ställer in antalet bilder som allokeras i drivrutinen. Datorns RAM-minne begränsar maxvärdet. |
| läge | I "sekvens"-läge blockerar denna funktion under inspelning. Inspelaren stannar automatiskt när antalet_bilder nås. I läget "Sequence non blocking" är denna funktion icke-blockerande. Statusen måste kontrolleras innan du läser en bild. Detta läge används för att läsa bilder under inspelning, t.ex. miniatyrbilder. I "ringbuffert"-läge är denna funktion icke-blockerande. Statusen måste kontrolleras innan du läser en bild. Inspelaren stoppar inte inspelningen när antalet_bilder har nåtts. När detta händer skrivs de äldsta bilderna över. I 'fifo'-läge är denna funktion icke-blockerande. Statusen måste kontrolleras innan du läser en bild. När antalet_av_bilder i fifo nås, släpps följande bilder tills bilder läses från fifo. |
2.1.2 Sluta
Beskrivning Stoppar den aktuella inspelningen. I 'ring buffer' och 'fifo' läge måste denna funktion anropas av användaren. I lägena "sekvens" och "sekvens icke blockerande" kallas denna funktion automatiskt upp när antalet_bilder nås.
Prototyp def stop(self):
2.1.3 Stäng
Beskrivning Stänger den aktiverade kameran och släpper de blockerade resurserna. Denna funktion måste anropas innan applikationen avslutas. Annars förblir resurserna upptagna.
Prototyp def close(self):
Denna funktion anropas automatiskt om kameraobjektet skapas av with-satsen. Ett explicit anrop till close() är inte längre nödvändigt.
med pco.Camera() som cam: # gör några saker
2.1.4 Bild
Beskrivning Returnerar en bild från inspelaren. Bildtypen är en numpy.ndarray. Denna array formas beroende på bildens upplösning och ROI.
Prototyp def image(self, image_number=0, roi=None):
Parameter
| Namn | Beskrivning |
| bildnummer | Anger numret på bilden som ska läsas. I läge "sekvens" eller "sekvens icke blockerande" matchar brännarens index bildnummer. Om bildnummer är inställt på 0xFFFFFFFF, kopieras den senast inspelade bilden. Detta gör det möjligt att skapa en live preview under inspelning. |
| roi | Ställer in regionen av intresse. Endast denna del av bilden kopieras till returvärdet. |
Example >>> cam.record(number_of_images=1, mode='sequence')
>>> bild, meta = cam.image()
>>> skriv(bild) numpy.ndarray
>>> image.shape (2160, 2560)
>>> bild, metadata = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300, 300)
2.1.5 XNUMX bilder
Beskrivning Returnerar alla inspelade bilder från inspelaren som en lista med numpy arrays.
Prototyp def images(self, roi=Ingen, blocksize=Ingen):
Parameter
| Namn | Beskrivning |
| roi | Ställer in regionen av intresse. Endast denna del av bilden kopieras till returvärdet. |
| blockstorlek | Definierar det maximala antalet bilder som returneras. Denna parameter är endast användbar i 'fifo'-läge och under speciella förhållanden. |
Example >>> cam.record(number_of_images=20, mode='sequence')
>>> bilder, metadata = cam.images()
>>> len(bilder) 20
>>> för bild i bilder:
…
print('Mean: {:7.2f} DN'.format(image.mean()))
…
Genomsnitt: 2147.64 DN
Genomsnitt: 2144.61 DN
…
>>> bilder = cam.images(roi=(1, 1, 300, 300))
>>> bilder[0].shape (300, 300)
2.1.6 Bildmedelvärde
Beskrivning Returnerar den genomsnittliga bilden. Denna bild beräknas från alla inspelade bilder i bufferten.
Prototyp def image_average(self, roi=Ingen):
Parameter
| Namn | Beskrivning |
| roi | Definierar området av intresse. Endast denna del av bilden kopieras till returvärdet. |
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
Beskrivning Ställer in kamerans exponeringstid.
Prototyp def set_exposure_time(själv, exponeringstid):
Parameter
| Namn | Beskrivning |
| exponeringstid | Måste anges som flytande eller heltalsvärde i enheten "sekund". De underliggande värdena för funktionen sdk.set_delay_exposure_time(0, 'ms', tid, tidsbas) kommer att beräknas automatiskt. Fördröjningstiden är inställd på 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Vänta_på_första_bild
Beskrivning Väntar på den första tillgängliga bilden i brännarens minne. I inspelningsläge 'sequence non blocking', 'ring buffer'. och 'fifo', funktionen record() returnerar omedelbart. Därför kan den här funktionen användas för att vänta på bilder från kameran innan du anropar image(), images() eller image_average().
Prototyp def wait_for_first_image(self):
2.2 Variabel konfiguration
Kameraparametrarna uppdateras genom att ändra konfigurationsvariabeln.
cam.configuration = {'exponeringstid': 10e-3,
'roi': (1, 1, 512, 512),
'timestamp': 'ascii',
'pixelhastighet': 100_000_000,
'trigger': 'autosekvens',
'acquire': 'auto',
'metadata': 'på',
'binning': (1, 1)}
Variabeln kan bara ändras innan funktionen record() anropas. Det är en ordbok med ett visst antal poster. Alla möjliga element behöver inte specificeras. Följandeampkoden ändrar bara 'pixelhastigheten' och påverkar inte några andra delar av konfigurationen.
med pco.Camera() som cam:
cam.configuration = {'pixelhastighet': 286_000_000}
cam.record()
…
2.3 XNUMX föremål
Det här avsnittet beskriver alla objekt som erbjuds av klassen pco.Camera.
2.3.1 SDK
Objektet sdk ger direkt åtkomst till alla underliggande funktioner i pco.sdk.
>>> cam.sdk.get_temperature()
{'sensortemperatur': 7.0, 'kameratemperatur': 38.2, 'effekttemperatur': 36.7}
Alla returvärden från sdk-funktioner är ordböcker. För närvarande täcks inte alla kamerainställningar av kameraklassen. Särskilda inställningar måste göras direkt genom att anropa respektive sdk-funktion.
2.3.2 Inspelare
Objektet rec erbjuder direkt tillgång till alla underliggande funktioner i pco.recorder. Det är inte nödvändigt att anropa en inspelareklassmetod direkt. Alla funktioner täcks helt av metoderna i klassen Kamera.
https://www.pco.de/applications/
| pco europa +49 9441 2005 50 info@pco.de pco.de |
pco america +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 |


Dokument/resurser
![]() | Python Software Development Kit |
Referenser
- Deed - Attribution-NoDerivatives 4.0 International - Creative Commonscreativecommons.org
- mailto:info@pco.depco.de
- PCO | Excelitaswww.pco.de
- PCO | Excelitaswww.pco.de
- Användarmanualmanual.tools
