Python-softwareontwikkelingskit
Gebruiksaanwijzing
Python-softwareontwikkelingskit
PCO vraagt u de instructies in dit document aandachtig te lezen en op te volgen.
Voor vragen of opmerkingen kunt u altijd contact met ons opnemen.
telefoon: +49 (0) 9441 2005 50
fax: +49 (0) 9441 2005 20
postadres: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Duitsland
e-mailadres: info@pco.de
web: www.pco.de
pco.python gebruikershandleiding 0.1.7
Uitgebracht december 2021
©Copyright Excelitas PCO GmbH
Dit werk valt onder de Creative Commons Attribution-No Derivatives 4.0 International License. Naar view een kopie van deze licentie, bezoek http://creativecommons.org/licenses/by-nd/4.0/ of stuur een brief naar Creative Commons, Postbus 1866, Mountain View, CA 94042, VS.
Algemeen
Het Python-pakket pco biedt alle functies voor het werken met pco-camera's die zijn gebaseerd op de huidige pco.sdk. Alle gedeelde bibliotheken voor de communicatie met de camera en de daaropvolgende beeldverwerking zijn inbegrepen.
- Eenvoudig te gebruiken cameraklasse
- Krachtige API om pco.sdk
- Beeldopname en -verwerking met pco.recorder
1.1 Installatie
Installeren vanaf pypi (aanbevolen):
$ pip installeer pco
1.2 Basisgebruik
importeer matplotlib.pyplot als plt
pco importeren
met pco.Camera() als cam:
cam.record()
afbeelding, meta = cam.image()
plt.imshow(afbeelding, cmap='grijs')
plt.show()1.3 Registratie van gebeurtenissen en fouten
Om de logboekuitvoer te activeren, maakt u het Camera-object met de parameter debuglevel=.
Het foutopsporingsniveau kan worden ingesteld op een van de volgende waarden:
- 'uit' Schakelt alle uitvoer uit.
- 'error' Toont alleen foutmeldingen.
- 'uitgebreid' Toont alle berichten.
- 'extra uitgebreid' Toont alle berichten en waarden.
Het standaard debugniveau is 'uit'.
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type: OK.
De optionele tijdenamp= parameter activeert a tag in de afgedrukte uitvoer. Mogelijke waarden zijn: 'aan' en 'uit'. De standaardwaarde is 'uit'.
pco.Camera(debuglevel='verbose', tijdentamp='aan')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.
API-documentatie
De klasse pco.Camera biedt de volgende methoden:
- record() genereert, configureert en start een nieuwe recorderinstantie.
- stop() stopt de huidige opname.
- close() sluit de huidige actieve camera en geeft de bezette bronnen vrij.
- image() retourneert een afbeelding van de recorder als numpy-array.
- images() retourneert alle opgenomen afbeeldingen van de recorder als een lijst met numpy-arrays.
- image_average() retourneert de gemiddelde afbeelding. Dit beeld wordt berekend op basis van alle opgenomen beelden in de buffer.
- set_exposure_time() stelt de belichtingstijd voor de camera in.
- wait_for_first_image() wacht op de eerste beschikbare afbeelding in het recordergeheugen.
De klasse pco.Camera heeft de volgende variabele:
- configuratie
De klasse pco.Camera heeft de volgende objecten:
- sdk biedt directe toegang tot alle onderliggende functies van de pco.sdk.
- recorder biedt directe toegang tot alle onderliggende functies van de pco.recorder.
2.1 Methoden
In deze sectie worden alle methoden beschreven die door de klasse pco.Camera worden aangeboden.
2.1.1 Opnemen
Beschrijving Creëert, configureert en start een nieuwe recorderinstantie. De volledige cameraconfiguratie moet worden ingesteld voordat record() wordt aangeroepen. De opdracht set_exposure_time() is de enige uitzondering. Deze functie heeft geen invloed op het recorderobject en kan tijdens de opname worden opgeroepen.
Prototype def record(self, number_of_images=1, mode='reeks'):
Parameter
Naam | Beschrijving |
aantal_van_afbeeldingen | Stelt het aantal afbeeldingen in dat in het stuurprogramma wordt toegewezen. Het RAM-geheugen van de pc beperkt de maximale waarde. |
modus | In de 'sequence'-modus blokkeert deze functie tijdens het opnemen. De recorder stopt automatisch wanneer het aantal_beelden is bereikt. In de 'sequence non blocking'-modus is deze functie niet-blokkerend. Voordat een afbeelding wordt gelezen, moet de status worden gecontroleerd. Deze modus wordt gebruikt om afbeeldingen te lezen tijdens het opnemen, bijvoorbeeld miniatuurweergaven. In 'ringbuffer'-modus is deze functie niet blokkerend. Voordat een afbeelding wordt gelezen, moet de status worden gecontroleerd. De recorder stopt de opname niet wanneer het aantal_beelden is bereikt. Zodra dit gebeurt, worden de oudste afbeeldingen overschreven. In de 'fifo'-modus is deze functie niet-blokkerend. Voordat een afbeelding wordt gelezen, moet de status worden gecontroleerd. Wanneer het aantal_van_afbeeldingen in de fifo is bereikt, worden de volgende afbeeldingen verwijderd totdat afbeeldingen uit de fifo worden gelezen. |
2.1.2 stop
Beschrijving Stopt de huidige opname. In de 'ringbuffer'- en 'fifo'-modus moet deze functie door de gebruiker worden aangeroepen. In de 'sequence'- en 'sequence non blocking'-modus wordt deze functie automatisch opgeroepen wanneer het aantal_of_images is bereikt.
Prototype stop zeker (zelf):
2.1.3 Sluiten
Beschrijving Sluit de geactiveerde camera en geeft de geblokkeerde bronnen vrij. Deze functie moet worden aangeroepen voordat de toepassing wordt beëindigd. Anders blijven de hulpbronnen bezet.
Prototype def close(zelf):
Deze functie wordt automatisch aangeroepen als het camera-object wordt gemaakt door de instructie with. Een expliciete aanroep van close() is niet langer nodig.
met pco.Camera() als cam: # doe wat dingen
2.1.4 Afbeelding
Beschrijving Retourneert een beeld van de recorder. Het type afbeelding is een numpy.ndarray. Deze array wordt gevormd afhankelijk van de resolutie en ROI van de afbeelding.
Prototype def afbeelding(zelf, afbeeldingsnummer=0, roi=Geen):
Parameter
Naam | Beschrijving |
afbeelding_nummer | Specificeert het nummer van de afbeelding die moet worden gelezen. In de 'sequence'- of 'sequence non blocking'-modus komt de recorderindex overeen met het afbeeldingsnummer. Als image_number is ingesteld op 0xFFFFFFFF, wordt het laatst opgenomen beeld gekopieerd. Dit maakt het mogelijk om een live pre te creërenview tijdens het opnemen. |
koning | Stelt het interessegebied in. Alleen dit gebied van de afbeelding wordt gekopieerd naar de retourwaarde. |
Example >>> cam.record(aantal_van_afbeeldingen=1, mode='reeks')
>>> afbeelding, meta = cam.image()
>>> type(afbeelding) numpy.ndarray
>>> afbeelding.vorm (2160, 2560)
>>> afbeelding, metadata = cam.image(roi=(1, 1, 300, 300))
>>> afbeelding.vorm (300, 300)
2.1.5 Afbeeldingen
Beschrijving Retourneert alle opgenomen beelden van de recorder als een lijst met numpy-arrays.
Prototype def afbeeldingen(self, roi=Geen, blocksize=Geen):
Parameter
Naam | Beschrijving |
koning | Stelt het interessegebied in. Alleen dit gebied van de afbeelding wordt gekopieerd naar de retourwaarde. |
blokformaat | Definieert het maximale aantal afbeeldingen dat wordt geretourneerd. Deze parameter is alleen nuttig in de 'fifo'-modus en onder speciale omstandigheden. |
Example >>> cam.record(aantal_van_afbeeldingen=20, mode='reeks')
>>> afbeeldingen, metadata = cam.images()
>>> len(afbeeldingen) 20
>>> voor afbeelding in afbeeldingen:
…
print('Betekenis: {:7.2f} DN'.format(afbeelding.gemiddelde()))
…
Gemiddelde: 2147.64 DN
Gemiddelde: 2144.61 DN
…
>>> afbeeldingen = cam.images(roi=(1, 1, 300, 300))
>>> afbeeldingen[0].vorm (300, 300)
2.1.6 Beeld_gemiddelde
Beschrijving Retourneert de gemiddelde afbeelding. Dit beeld wordt berekend op basis van alle opgenomen beelden in de buffer.
Prototype def image_average(self, roi=Geen):
Parameter
Naam | Beschrijving |
koning | Definieert het interessegebied. Alleen dit gebied van de afbeelding wordt gekopieerd naar de retourwaarde. |
Example >>> cam.record(aantal_van_afbeeldingen=100, mode='reeks')
>>> gemiddelde = cam.image_average()
>>> gem = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Stel_belichtingstijd in
Beschrijving Stelt de belichtingstijd van de camera in.
Prototype def set_exposure_time(self, exposure_time):
Parameter
Naam | Beschrijving |
blootstellingstijd | Moet worden opgegeven als float- of integer-waarde in de eenheid 'second'. De onderliggende waarden voor de functie sdk.set_delay_exposure_time(0, 'ms', time, timebase) worden automatisch berekend. De vertragingstijd is ingesteld op 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Wacht op_eerste_afbeelding
Beschrijving Wacht op het eerste beschikbare beeld in het recordergeheugen. In recordermodus 'sequence non blocking', 'ringbuffer'. en 'fifo', retourneert de functie record() onmiddellijk. Daarom kan deze functie worden gebruikt om te wachten op afbeeldingen van de camera voordat u image(), images() of image_average() aanroept.
Prototype def wait_for_first_image(self):
2.2 Variabele configuratie
De cameraparameters worden bijgewerkt door de configuratievariabele te wijzigen.
cam.configuration = {'belichtingstijd': 10e-3,
'roi': (1, 1, 512, 512),
'tijdensamp': 'ascii',
'pixelsnelheid': 100_000_000,
'trigger': 'automatische sequentie',
'verwerven': 'auto',
'metagegevens': 'aan',
'binnen': (1, 1)}
De variabele kan alleen worden gewijzigd voordat de functie record() wordt aangeroepen. Het is een woordenboek met een bepaald aantal vermeldingen. Niet alle mogelijke elementen hoeven te worden gespecificeerd. De volgende zampbestandscode verandert alleen de 'pixelsnelheid' en heeft geen invloed op andere elementen van de configuratie.
met pco.Camera() als cam:
cam.configuration = {'pixelsnelheid': 286_000_000}
cam.record()
…
2.3 objecten
In deze sectie worden alle objecten beschreven die worden aangeboden door de klasse pco.Camera.
2.3.1 SDK
De object-sdk biedt directe toegang tot alle onderliggende functies van het pco.sdk.
>>> cam.sdk.get_temperature()
{'sensortemperatuur': 7.0, 'cameratemperatuur': 38.2, 'stroomtemperatuur': 36.7}
Alle geretourneerde waarden van SDK-functies zijn woordenboeken. Momenteel vallen niet alle camera-instellingen onder de klasse Camera. Speciale instellingen moeten rechtstreeks worden ingesteld door de betreffende sdk-functie aan te roepen.
2.3.2 Blokfluit
Het object rec biedt directe toegang tot alle onderliggende functies van de pco.recorder. Het is niet nodig om rechtstreeks een recorderklassemethode aan te roepen. Alle functies worden volledig gedekt door de methoden van de klasse Camera.
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 Azië +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco china +86 512 67634643 info@pco.cn pco.cn |
Documenten / Bronnen
![]() |
EXCELITAS TECHNOLOGIES Python-softwareontwikkelingskit [pdf] Gebruikershandleiding Python-softwareontwikkelingskit, softwareontwikkelingskit, ontwikkelingskit, kit |