

Python sagteware-ontwikkelingskit
Gebruikershandleiding

Python sagteware-ontwikkelingskit
PCO vra jou om die instruksies in hierdie dokument noukeurig te lees en te volg.
Vir enige vrae of kommentaar, kontak ons asseblief enige tyd.
telefoon: +49 (0) 9441 2005 50
faks: +49 (0) 9441 2005 20
posadres: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Duitsland
e-pos: info@pco.de
web: www.pco.de
pco.python gebruikershandleiding 0.1.7
Vrygestel Desember 2021
© Kopiereg Excelitas PCO GmbH
Hierdie werk is gelisensieer onder die Creative Commons Attribution-No Derivatives 4.0 International License. Om view 'n afskrif van hierdie lisensie, besoek http://creativecommons.org/licenses/by-nd/4.0/ of stuur 'n brief aan Creative Commons, Posbus 1866, Berg View, CA 94042, VSA.
Algemeen
Die Python-pakket pco bied alle funksies om met pco-kameras te werk wat op die stroom gebaseer is pco.sdk. Alle gedeelde biblioteke vir die kommunikasie met die kamera en daaropvolgende beeldverwerking is ingesluit.
- Maklik om te gebruik kamera klas
- Kragtige API om pco.sdk
- Beeld opname en verwerking met pco.opnemer
1.1 Installasie
Installeer vanaf pypi (aanbeveel):
$ pip installeer pco
1.2 Basiese gebruik
voer matplotlib.pyplot in as plt
invoer pco
met pco.Camera() as cam:
cam.record()
beeld, meta = cam.image()
plt.imshow(image, cmap='grys')
plt.show()
1.3 Gebeurtenis- en foutregistrasie
Om die aantekenafvoer te aktiveer, skep die Kamera-voorwerp met die debuglevel= parameter.
Die ontfoutingsvlak kan op een van die volgende waardes gestel word:
- 'af' Deaktiveer alle uitvoer.
- 'fout' Wys slegs foutboodskappe.
- 'verbose' Wys alle boodskappe.
- 'ekstra verbose' Wys alle boodskappe en waardes.
Die verstek ontfoutingsvlak is 'af'.
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type: OK.
Die opsionele tyeamp= parameter aktiveer a tag in die gedrukte uitvoer. Moontlike waardes is: 'aan' en 'af'. Die verstekwaarde is 'af'.
pco.Camera(debuglevel='verbose', timestamp='aan')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.
API Dokumentasie
Die pco.Camera-klas bied die volgende metodes:
- record() genereer, konfigureer en begin 'n nuwe opnemer-instansie.
- stop() stop die huidige opname.
- close() maak die huidige aktiewe kamera toe en stel die besette bronne vry.
- image() gee 'n beeld van die blokfluit terug as numpy skikking.
- images() gee alle aangetekende beelde van die opnemer terug as 'n lys van numpy skikkings.
- image_average() gee die gemiddelde beeld terug. Hierdie beeld word bereken uit alle opgeneemde beelde in die buffer.
- set_exposure_time() stel die blootstellingstyd vir die kamera.
- wait_for_first_image() wag vir die eerste beskikbare beeld in die opnemergeheue.
Die pco.Camera-klas het die volgende veranderlike:
- konfigurasie
Die pco.Camera-klas het die volgende voorwerpe:
- sdk bied direkte toegang tot alle onderliggende funksies van die pco.sdk.
- blokfluit bied direkte toegang tot alle onderliggende funksies van die pco.opnemer.
2.1 Metodes
Hierdie afdeling beskryf alle metodes wat deur die pco.Camera-klas aangebied word.
2.1.1 Rekord
Beskrywing Skep, konfigureer en begin 'n nuwe opnemer-instansie. Die hele kamerakonfigurasie moet gestel word voordat rekord() gebel word. Die set_exposure_time() opdrag is die enigste uitsondering. Hierdie funksie het geen effek op die opnemervoorwerp nie en kan tydens die opname opgeroep word.
Prototipe def rekord (self, aantal_beelde=1, modus='volgorde'):
Parameter
| Naam | Beskrywing |
| aantal_beelde | Stel die aantal beelde wat in die bestuurder toegewys is. Die RAM van die rekenaar beperk die maksimum waarde. |
| modus | In 'volgorde'-modus blokkeer hierdie funksie tydens rekord. Die opnemer stop outomaties wanneer die aantal_beelde bereik word. In 'volgorde nie-blokkeer'-modus is hierdie funksie nie-blokkerend. Die status moet nagegaan word voordat 'n prent gelees word. Hierdie modus word gebruik om beelde te lees tydens opname, bv. miniatuur. In 'ring buffer' modus is hierdie funksie nie blokkerend. Die status moet nagegaan word voordat 'n prent gelees word. Opnemer stop nie die opname wanneer die aantal_beelde bereik is nie. Sodra dit gebeur, word die oudste beelde oorgeskryf. In 'fifo'-modus is hierdie funksie nie-blokkerend. Die status moet nagegaan word voordat 'n prent gelees word. Wanneer die aantal_van_beelde in die fifo bereik is, word die volgende beelde laat val totdat beelde van die fifo gelees word. |
2.1.2 Stop
Beskrywing Stop die huidige opname. In 'ring buffer' en 'fifo' modus moet hierdie funksie deur die gebruiker geroep word. In 'volgorde' en 'volgorde nie blokkeer'-modus, word hierdie funksie outomaties opgeroep wanneer die aantal_beelde bereik word.
Prototipe def stop(self):
2.1.3 Maak toe
Beskrywing Maak die geaktiveerde kamera toe en stel die geblokkeerde bronne vry. Hierdie funksie moet geroep word voordat die toepassing beëindig word. Andersins bly die hulpbronne beset.
Prototipe def naby (self):
Hierdie funksie word outomaties genoem as die kamera-voorwerp deur die with-stelling geskep word. 'n Eksplisiete oproep om te sluit() is nie meer nodig nie.
met pco.Camera() as cam: # doen 'n paar goed
2.1.4 Beeld
Beskrywing Wys 'n beeld vanaf die opnemer. Die tipe beeld is 'n numpy.ndarray. Hierdie skikking is gevorm na gelang van die resolusie en ROI van die beeld.
Prototipe def beeld(self, beeldnommer=0, roi=Geen):
Parameter
| Naam | Beskrywing |
| beeld_nommer | Spesifiseer die nommer van die prent wat gelees moet word. In 'volgorde' of 'volgorde nie blokkeer'-modus, pas die opnemerindeks by die beeldnommer. As beeldnommer op 0xFFFFFFFF gestel is, word die laaste aangetekende beeld gekopieer. Dit laat toe om 'n lewendige preview tydens opname. |
| roi | Stel die streek van belang. Slegs hierdie streek van die prent word na die terugkeerwaarde gekopieer. |
Example >>> cam.record(aantal_beelde=1, modus='volgorde')
>>> beeld, meta = cam.image()
>>> tik(beeld) numpy.ndarray
>>> beeld.vorm (2160, 2560)
>>> beeld, metadata = cam.image(roi=(1, 1, 300, 300))
>>> beeld.vorm (300, 300)
2.1.5 XNUMX beelde
Beskrywing Wys alle opgeneemde beelde vanaf die opnemer as 'n lys van numpy skikkings.
Prototipe def beelde (self, roi=Geen, blokgrootte=Geen):
Parameter
| Naam | Beskrywing |
| roi | Stel die streek van belang. Slegs hierdie streek van die prent word na die terugkeerwaarde gekopieer. |
| blokgrootte | Definieer die maksimum aantal beelde wat teruggestuur word. Hierdie parameter is slegs nuttig in 'fifo'-modus en onder spesiale omstandighede. |
Example >>> cam.record(aantal_beelde=20, modus='volgorde')
>>> beelde, metadata = cam.images()
>>> len(beelde) 20
>>> vir beeld in beelde:
…
print('Gemiddeld: {:7.2f} DN'.format(image.mean()))
…
Gemiddeld: 2147.64 DN
Gemiddeld: 2144.61 DN
…
>>> beelde = cam.images(roi=(1, 1, 300, 300))
>>> beelde[0].shape (300, 300)
2.1.6 Beeld_gemiddeld
Beskrywing Wys die gemiddelde prent. Hierdie beeld word bereken uit alle opgeneemde beelde in die buffer.
Prototipe def image_average(self, roi=Geen):
Parameter
| Naam | Beskrywing |
| roi | Definieer die streek van belang. Slegs hierdie streek van die prent word na die terugkeerwaarde gekopieer. |
Example >>> cam.record(aantal_beelde=100, modus='volgorde')
>>> avg = cam.image_average()
>>> gem = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Stel_blootstellingstyd
Beskrywing Stel die blootstellingstyd van die kamera.
Prototipe def set_exposure_time(self, exposure_time):
Parameter
| Naam | Beskrywing |
| blootstellingstyd | Moet as dryf- of heelgetalwaarde in die eenheid 'tweede' gegee word. Die onderliggende waardes vir die funksie sdk.set_delay_exposure_time(0, 'ms', tyd, tydbasis) sal outomaties bereken word. Die vertragingstyd is op 0 gestel. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Wag_vir_eerste_beeld
Beskrywing Wag vir die eerste beskikbare beeld in die opnemergeheue. In blokfluitmodus 'volgorde nie blokkeer', 'ring buffer'. en 'fifo', die funksie rekord() gee onmiddellik terug. Daarom kan hierdie funksie gebruik word om te wag vir beelde van die kamera af voordat jy image(), images() of image_average() oproep.
Prototipe def wag_vir_eerste_beeld(self):
2.2 Veranderlike konfigurasie
Die kameraparameters word opgedateer deur die konfigurasieveranderlike te verander.
cam.configuration = {'blootstellingstyd': 10e-3,
'roi': (1, 1, 512, 512),
'tydsteamp': 'ascii',
'pixel rate': 100_000_000,
'trigger': 'outo-volgorde',
'acquire': 'outo',
'metadata': 'aan',
'binning': (1, 1)}
Die veranderlike kan slegs verander word voordat die rekord()-funksie opgeroep word. Dit is 'n woordeboek met 'n sekere aantal inskrywings. Nie alle moontlike elemente hoef gespesifiseer te word nie. Die volgende aample kode verander slegs die 'pixel rate' en beïnvloed geen ander elemente van die konfigurasie nie.
met pco.Camera() as cam:
cam.configuration = {'pixel rate': 286_000_000}
cam.record()
…
2.3 Voorwerpe
Hierdie afdeling beskryf alle voorwerpe wat deur die pco.Camera-klas aangebied word.
2.3.1 SDK
Die objek sdk laat direkte toegang tot alle onderliggende funksies van die pco.sdk.
>>> cam.sdk.get_temperature()
{'sensortemperatuur': 7.0, 'kameratemperatuur': 38.2, 'kragtemperatuur': 36.7}
Alle terugkeerwaardes van sdk-funksies is woordeboeke. Nie alle kamera-instellings word tans deur die Kameraklas gedek nie. Spesiale instellings moet direk ingestel word deur die onderskeie sdk-funksie te skakel.
2.3.2 Blokfluit
Die voorwerp rec bied direkte toegang tot alle onderliggende funksies van die pco.opnemer. Dit is nie nodig om 'n blokfluitklasmetode direk te noem nie. Alle funksies word volledig gedek deur die metodes van die Kameraklas.
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 asië +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco China +86 512 67634643 info@pco.cn pco.cn |


Dokumente / Hulpbronne
![]() | Python sagteware-ontwikkelingskit |
Verwysings
- Akte - Erkenning-Geen Afgeleides 4.0 Internasionaal - Creative Commonscreativecommons.org
- mailto:info@pco.depco.de
- PCO | Excelitaswww.pco.de
- PCO | Excelitaswww.pco.de
- Gebruikershandleidingmanual.tools
