Python Software Development Kit
Käyttöopas
Python Software Development Kit
PCO pyytää sinua lukemaan huolellisesti tämän asiakirjan ohjeet ja noudattamaan niitä.
Jos sinulla on kysyttävää tai kommentteja, ota meihin yhteyttä milloin tahansa.
puhelin: +49 (0) 9441 2005 50
faksi: +49 (0) 9441 2005 20
postiosoite: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Saksa
sähköposti: info@pco.de
web: www.pco.de
pco.python käyttöopas 0.1.7
Julkaistu joulukuussa 2021
©Tekijänoikeus Excelitas PCO GmbH
Tämä teos on lisensoitu Creative Commons Attribution-No Derivatives 4.0 International License -lisenssillä. Vastaanottaja view kopio tästä lisenssistä, vieraile http://creativecommons.org/licenses/by-nd/4.0/ tai lähetä kirje osoitteeseen Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Kenraali
Python-paketti pco tarjoaa kaikki toiminnot työskentelyyn pco-kameroiden kanssa, jotka perustuvat nykyiseen pco.sdk. Mukana ovat kaikki jaetut kirjastot viestintää kameran kanssa ja sitä seuraavaa kuvankäsittelyä varten.
- Helppokäyttöinen kameraluokka
- Tehokas API pco.sdk
- Kuvan tallennus ja käsittely pco.recorder
1.1 Asennus
Asenna pypistä (suositus):
$ pip asennus pco
1.2 Peruskäyttö
tuo matplotlib.pyplot muodossa plt
tuonti pco
pco.Camera() kamerana:
cam.record()
kuva, meta = cam.image()
plt.imshow(image, cmap='grey')
plt.show()1.3 Tapahtumien ja virheiden kirjaaminen
Aktivoi lokitulostus luomalla Kamera-objekti parametrilla debuglevel=.
Vianetsintätaso voidaan asettaa johonkin seuraavista arvoista:
- 'off' Poistaa käytöstä kaiken lähdön.
- 'error' Näyttää vain virheilmoitukset.
- 'verbose' Näyttää kaikki viestit.
- 'extra verbose' Näyttää kaikki viestit ja arvot.
Oletusvirheenkorjaustaso on "off".
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type: OK.
Valinnainen aikaamp= parametri aktivoi a tag tulosteessa. Mahdolliset arvot ovat: 'on' ja 'off'. Oletusarvo on 'off'.
pco.Camera(debuglevel='verbose', timestamp='päällä')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.
API-dokumentaatio
Pco.Camera-luokka tarjoaa seuraavat menetelmät:
- record() luo, määrittää ja käynnistää uuden tallenninesiintymän.
- stop() pysäyttää nykyisen tallennuksen.
- close() sulkee nykyisen aktiivisen kameran ja vapauttaa varatut resurssit.
- image() palauttaa kuvan tallentimesta numpy-taulukkona.
- images() palauttaa kaikki tallennetut kuvat tallentimesta numpy-taulukoiden luettelona.
- image_average() palauttaa keskiarvotetun kuvan. Tämä kuva lasketaan kaikista puskuriin tallennetuista kuvista.
- set_exposure_time() asettaa kameran valotusajan.
- wait_for_first_image() odottaa ensimmäistä vapaata kuvaa tallentimen muistissa.
Luokassa pco.Camera on seuraava muuttuja:
- kokoonpano
Luokassa pco.Camera on seuraavat objektit:
- sdk tarjoaa suoran pääsyn kaikkiin taustalla oleviin toimintoihin pco.sdk.
- tallennin tarjoaa suoran pääsyn kaikkiin taustalla oleviin toimintoihin pco.recorder.
2.1 Menetelmät
Tässä osiossa kuvataan kaikki pco.Camera-luokan tarjoamat menetelmät.
2.1.1 Tallenna
Kuvaus Luo, määrittää ja käynnistää uuden tallenninesiintymän. Kameran koko kokoonpano on määritettävä ennen record()-kutsua. Komento set_exposure_time() on ainoa poikkeus. Tällä toiminnolla ei ole vaikutusta tallenninobjektiin, ja se voidaan kutsua esiin tallennuksen aikana.
Prototyyppi def record(self, number_of_images=1, mode='sequence'):
Parametri
Nimi | Kuvaus |
kuvien_määrä | Asettaa ohjaimeen varattujen kuvien määrän. PC:n RAM rajoittaa maksimiarvoa. |
tila | Sekvenssitilassa tämä toiminto estyy tallennuksen aikana. Tallennin pysähtyy automaattisesti, kun kuvien_määrä saavutetaan. "Sequence non blocking" -tilassa tämä toiminto on ei-esto. Tila on tarkistettava ennen kuvan lukemista. Tätä tilaa käytetään kuvien, esim. pikkukuvien, lukemiseen tallennuksen aikana. Soittopuskuritilassa tämä toiminto ei ole estävä. Tila on tarkistettava ennen kuvan lukemista. Tallennin ei lopeta tallennusta, kun kuvien_määrä on saavutettu. Kun tämä tapahtuu, vanhimmat kuvat korvataan. Fifo-tilassa tämä toiminto ei estä. Tila on tarkistettava ennen kuvan lukemista. Kun kuvien_määrä fifossa saavutetaan, seuraavat kuvat pudotetaan, kunnes kuvat luetaan fifosta. |
2.1.2 Pysäytä
Kuvaus Pysäyttää nykyisen tallennuksen. "Ring buffer" ja "fifo" -tilassa käyttäjän on kutsuttava tämä toiminto. "Sequence"- ja "Sequence non blocking" -tiloissa tämä toiminto käynnistyy automaattisesti, kun kuvien_määrä saavutetaan.
Prototyyppi def stop (itse):
2.1.3 Sulje
Kuvaus Sulkee aktivoidun kameran ja vapauttaa estetyt resurssit. Tämä toiminto on kutsuttava ennen sovelluksen sulkemista. Muuten resurssit jäävät varattuiksi.
Prototyyppi def close (itse):
Tätä toimintoa kutsutaan automaattisesti, jos kameraobjekti on luotu with-käskyllä. Nimenomainen kutsu close() ei ole enää tarpeen.
pco.Camera()-kamerana: # tee jotain
2.1.4 Kuva
Kuvaus Palauttaa kuvan tallentimesta. Kuvan tyyppi on numpy.ndarray. Tämä ryhmä on muotoiltu kuvan resoluution ja ROI:n mukaan.
Prototyyppi def image(self, image_number=0, roi=Ei mitään):
Parametri
Nimi | Kuvaus |
kuvan_numero | Määrittää luettavan kuvan numeron. "Sequence"- tai "sequence non blocking" -tilassa tallentimen indeksi vastaa kuvan_numeroa. Jos kuvan_numero on asetettu arvoon 0xFFFFFFFF, viimeksi tallennettu kuva kopioidaan. Tämä mahdollistaa live-esityksen luomisenview tallennuksen aikana. |
roi | Asettaa kiinnostavan alueen. Vain tämä kuvan alue kopioidaan palautusarvoon. |
Example >>> cam.record(kuvien_määrä=1, tila='sekvenssi')
>>> kuva, meta = cam.image()
>>> type(image) numpy.ndarray
>>> image.shape (2160, 2560)
>>> kuva, metatiedot = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300, 300)
2.1.5 kuvaa
Kuvaus Palauttaa kaikki tallennetut kuvat tallentimesta numppaisten ryhmien luettelona.
Prototyyppi def images(self, roi=Ei mitään, blocksize=ei mitään):
Parametri
Nimi | Kuvaus |
roi | Asettaa kiinnostavan alueen. Vain tämä kuvan alue kopioidaan palautusarvoon. |
lohkon koko | Määrittää palautettavien kuvien enimmäismäärän. Tämä parametri on hyödyllinen vain 'fifo'-tilassa ja erityisolosuhteissa. |
Example >>> cam.record(kuvien_määrä=20, tila='sekvenssi')
>>> kuvat, metatiedot = cam.images()
>>> len(kuvat) 20
>>> kuva kuvissa:
…
print('Mean: {:7.2f} DN'.format(image.mean()))
…
Keskiarvo: 2147.64 DN
Keskiarvo: 2144.61 DN
…
>>> kuvat = cam.images(roi=(1, 1, 300, 300))
>>> kuvat[0].shape (300, 300)
2.1.6 Kuvan_keskiarvo
Kuvaus Palauttaa keskiarvon kuvan. Tämä kuva lasketaan kaikista puskuriin tallennetuista kuvista.
Prototyyppi def image_average(self, roi=Ei mitään):
Parametri
Nimi | Kuvaus |
roi | Määrittää kiinnostavan alueen. Vain tämä kuvan alue kopioidaan palautusarvoon. |
Example >>> cam.record(kuvien_määrä=100, tila='sekvenssi')
>>> avg = cam.image_average()
>>> keskiarvo = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Aseta_valotusaika
Kuvaus Asettaa kameran valotusajan.
Prototyyppi def set_exposure_time(self,exposure_time):
Parametri
Nimi | Kuvaus |
altistumisaika | On annettava float- tai kokonaislukuna yksikössä "sekunti". Funktion sdk.set_delay_exposure_time(0, 'ms', time, timebase) taustalla olevat arvot lasketaan automaattisesti. Viiveaika on asetettu 0:ksi. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Odota_ensimmäistä_kuvaa
Kuvaus Odottaa ensimmäistä vapaata kuvaa tallentimen muistissa. Tallennintilassa 'sekvenssi ei esto', 'soittopuskuri'. ja 'fifo', funktio record() palauttaa välittömästi. Siksi tätä toimintoa voidaan käyttää odottamaan kuvia kamerasta ennen kuin kutsutaan image(), images() tai image_average().
Prototyyppi def wait_for_first_image(self):
2.2 Muuttujan kokoonpano
Kameran parametrit päivitetään muuttamalla konfiguraatiomuuttujaa.
cam.configuration = {'valotusaika': 10e-3,
"roi": (1, 1, 512, 512),
'timestamp': 'ascii',
'pikselinopeus': 100_000_000,
'trigger': 'automaattinen järjestys',
'acquire': 'auto',
'metadata': 'on',
'binning': (1, 1)}
Muuttuja voidaan muuttaa vain ennen record()-funktion kutsumista. Se on sanakirja, jossa on tietty määrä merkintöjä. Kaikkia mahdollisia elementtejä ei tarvitse määrittää. Seuraavat sample koodi muuttaa vain 'pikselinopeutta' eikä vaikuta muihin kokoonpanon elementteihin.
pco.Camera() kamerana:
cam.configuration = {'pikselinopeus': 286_000_000}
cam.record()
…
2.3 Objektit
Tässä osiossa kuvataan kaikki pco.Camera-luokan tarjoamat objektit.
2.3.1 SDK
Objekti sdk mahdollistaa suoran pääsyn kaikkiin taustalla oleviin toimintoihin pco.sdk.
>>> cam.sdk.get_temperature()
{'anturin lämpötila': 7.0, 'kameran lämpötila': 38.2, 'teholämpötila': 36.7}
Kaikki sdk-funktioiden palautusarvot ovat sanakirjoja. Kamera-luokka ei tällä hetkellä kata kaikkia kameran asetuksia. Erikoisasetukset on määritettävä suoraan kutsumalla vastaava sdk-toiminto.
2.3.2 Tallennin
Object rec tarjoaa suoran pääsyn kaikkiin taustalla oleviin toimintoihin pco.recorder. Tallenninluokan metodia ei tarvitse kutsua suoraan. Kaikki toiminnot kattavat täysin Camera-luokan menetelmät.
https://www.pco.de/applications/
pco Euroopassa +49 9441 2005 50 info@pco.de pco.de |
pco amerikka +1 866 678 4566 info@pco-tech.com pco-tech.com |
pco aasia +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco kiina +86 512 67634643 info@pco.cn pco.cn |
Asiakirjat / Resurssit
![]() |
EXCELITAS TECHNOLOGIES Python Software Development Kit [pdfKäyttöopas Python Software Development Kit, Software Development Kit, Development Kit, Kit |