

Kit de desenvolupament de programari Python
Manual d'usuari

Kit de desenvolupament de programari Python
PCO us demana que llegiu i seguiu atentament les instruccions d'aquest document.
Per a qualsevol pregunta o comentari, no dubteu a posar-vos en contacte amb nosaltres en qualsevol moment.
Telèfon: +49 (0) 9441 2005 50
fax: +49 (0) 9441 2005 20
Adreça postal: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Alemanya
correu electrònic: info@pco.de
web: www.pco.de
manual d'usuari pco.python 0.1.7
Publicat el desembre de 2021
©Dret d'autor Excelitas PCO GmbH
Aquesta obra està subjecta a la llicència internacional Creative Commons Reconeixement-Sense Derivades 4.0. A view una còpia d'aquesta llicència, visiteu http://creativecommons.org/licenses/by-nd/4.0/ o enviar una carta a Creative Commons, PO Box 1866, Mountain View, CA 94042, EUA.
General
El paquet Python pco ofereix totes les funcions per treballar amb càmeres pco que es basen en el corrent pco.sdk. S'inclouen totes les biblioteques compartides per a la comunicació amb la càmera i el posterior processament d'imatges.
- Classe de càmera fàcil d'utilitzar
- API potent per pco.sdk
- Enregistrament i tractament d'imatges amb pco.recorder
1.1 Instal·lació
Instal·lar des de pypi (recomanat):
$ pip install pco
1.2 Ús bàsic
importa matplotlib.pyplot com a plt
importació pco
amb pco.Camera() com a càmera:
cam.record()
imatge, meta = cam.image()
plt.imshow(imatge, cmap='gris')
plt.show()
1.3 Registre d'esdeveniments i errors
Per activar la sortida de registre, creeu l'objecte Camera amb el paràmetre debuglevel=.
El nivell de depuració es pot establir en un dels valors següents:
- 'off' Desactiva tota la sortida.
- 'error' Mostra només missatges d'error.
- 'verbose' Mostra tots els missatges.
- 'extra verbose' Mostra tots els missatges i valors.
El nivell de depuració predeterminat és "desactivat".
pco.Camera(debuglevel='verbose')
…
[[][sdk] get_camera_type: D'acord.
El temps opcionalamp= el paràmetre activa a tag a la sortida impresa. Els valors possibles són: 'on' i 'off'. El valor predeterminat és "desactivat".
pco.Camera(debuglevel='verbose', timestamp='on')
…
[2019/11/25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: D'acord.
Documentació de l'API
La classe pco.Camera ofereix els mètodes següents:
- record() genera, configura i inicia una nova instància de gravadora.
- stop() atura l'enregistrament actual.
- close() tanca la càmera activa actual i allibera els recursos ocupats.
- image() retorna una imatge de la gravadora com a matriu numpy.
- images() retorna totes les imatges enregistrades des de la gravadora com una llista de matrius numpy.
- image_average() retorna la imatge mitjana. Aquesta imatge es calcula a partir de totes les imatges enregistrades a la memòria intermèdia.
- set_exposure_time() estableix el temps d'exposició de la càmera.
- wait_for_first_image() espera la primera imatge disponible a la memòria de la gravadora.
La classe pco.Camera té la variable següent:
- configuració
La classe pco.Camera té els objectes següents:
- sdk ofereix accés directe a totes les funcions subjacents del fitxer pco.sdk.
- La gravadora ofereix accés directe a totes les funcions subjacents del fitxer pco.recorder.
2.1 Mètodes
Aquesta secció descriu tots els mètodes que ofereix la classe pco.Camera.
2.1.1 Registre
Descripció Crea, configura i inicia una nova instància de gravadora. S'ha d'establir tota la configuració de la càmera abans de cridar a record(). L'ordre set_exposure_time() és l'única excepció. Aquesta funció no té cap efecte sobre l'objecte gravador i es pot cridar durant l'enregistrament.
Prototip def record(self, number_of_images=1, mode='sequence'):
Paràmetre
| Nom | Descripció |
| nombre_d'imatges | Estableix el nombre d'imatges assignades al controlador. La memòria RAM del PC limita el valor màxim. |
| mode | En el mode "seqüència", aquesta funció es bloqueja durant l'enregistrament. La gravadora s'atura automàticament quan s'arriba al nombre_d'imatges. En el mode "seqüència sense bloqueig", aquesta funció no es bloqueja. Cal comprovar l'estat abans de llegir una imatge. Aquest mode s'utilitza per llegir imatges durant la gravació, per exemple, miniatures. En el mode "búfer d'anell", aquesta funció no es bloqueja. Cal comprovar l'estat abans de llegir una imatge. La gravadora no atura l'enregistrament quan s'arriba al nombre_d'imatges. Un cop això succeeix, les imatges més antigues es sobreescriuen. En el mode "fifo", aquesta funció no es bloqueja. Cal comprovar l'estat abans de llegir una imatge. Quan s'arriba al nombre_d'imatges del fifo, les imatges següents s'eliminen fins que es llegeixen les imatges del fifo. |
2.1.2 Atura't
Descripció Atura l'enregistrament actual. En els modes "ring buffer" i "fifo", l'usuari ha de cridar aquesta funció. En el mode "seqüència" i "seqüència sense bloqueig", aquesta funció es crida automàticament quan s'arriba al nombre_d'imatges.
Prototip def stop(self):
2.1.3 Tanca
Descripció Tanca la càmera activada i allibera els recursos bloquejats. Aquesta funció s'ha de cridar abans de finalitzar l'aplicació. En cas contrari, els recursos romanen ocupats.
Prototip def close(self):
Aquesta funció es crida automàticament si la instrucció with crea l'objecte de la càmera. Una crida explícita a close() ja no és necessària.
amb pco.Camera() com a càmera: # fes algunes coses
2.1.4 Imatge
Descripció Retorna una imatge de la gravadora. El tipus de la imatge és un numpy.ndarray. Aquesta matriu té forma en funció de la resolució i el ROI de la imatge.
Prototip imatge def (self, nombre_imatge=0, roi=Cap):
Paràmetre
| Nom | Descripció |
| número_imatge | Especifica el número de la imatge a llegir. En el mode "seqüència" o "seqüència sense bloqueig", l'índex de la gravadora coincideix amb el número_imatge. Si nombre_imatge s'estableix en 0xFFFFFFFF, es copia la darrera imatge gravada. Això permet crear un pre en directeview durant la gravació. |
| roi | Estableix la regió d'interès. Només aquesta regió de la imatge es copia al valor de retorn. |
Example >>> cam.record(nombre_d_imatges=1, mode='seqüència')
>>> imatge, meta = cam.image()
>>> escriviu (imatge) numpy.ndarray
>>> image.shape (2160, 2560)
>>> imatge, metadades = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300, 300)
2.1.5 Imatges
Descripció Retorna totes les imatges gravades de la gravadora com una llista de matrius numpy.
Prototip imatges def (self, roi=Cap, mida del bloc=Cap):
Paràmetre
| Nom | Descripció |
| roi | Estableix la regió d'interès. Només aquesta regió de la imatge es copia al valor de retorn. |
| mida de bloc | Defineix el nombre màxim d'imatges que es retornen. Aquest paràmetre només és útil en mode "fifo" i en condicions especials. |
Example >>> cam.record(nombre_d_imatges=20, mode='seqüència')
>>> imatges, metadades = cam.images()
>>> len(imatges) 20
>>> per a la imatge en imatges:
…
print('Media: {:7.2f} DN'.format(image.mean()))
…
Mitjana: 2147.64 DN
Mitjana: 2144.61 DN
…
>>> imatges = cam.images(roi=(1, 1, 300, 300))
>>> imatges[0].forma (300, 300)
2.1.6 Imatge_mitjana
Descripció Retorna la imatge mitjana. Aquesta imatge es calcula a partir de totes les imatges enregistrades a la memòria intermèdia.
Prototip def image_average(self, roi=Cap):
Paràmetre
| Nom | Descripció |
| roi | Defineix la regió d'interès. Només aquesta regió de la imatge es copia al valor de retorn. |
Example >>> cam.record(nombre_d_imatges=100, mode='seqüència')
>>> mitjana = cam.image_average()
>>> mitjana = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Establir_temps_d'exposició
Descripció Estableix el temps d'exposició de la càmera.
Prototip def set_exposure_time(self, exposició_time):
Paràmetre
| Nom | Descripció |
| temps d'exposició | S'ha de donar com a valor flotant o enter a la unitat "segon". Els valors subjacents per a la funció sdk.set_delay_exposure_time(0, 'ms', temps, base de temps) es calcularan automàticament. El temps de retard s'estableix a 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Espera_la_primera_imatge
Descripció Espera la primera imatge disponible a la memòria de la gravadora. En el mode de gravació "seqüència no bloquejada", "búfer d'anell". i 'fifo', la funció record() torna immediatament. Per tant, aquesta funció es pot utilitzar per esperar imatges de la càmera abans de cridar a image(), images() o image_average().
Prototip def wait_for_first_image(self):
2.2 Configuració variable
Els paràmetres de la càmera s'actualitzen canviant la variable de configuració.
cam.configuration = {'temps d'exposició': 10e-3,
'roi': (1, 1, 512, 512),
'tempsamp': 'ascii',
'taxa de píxels': 100_000_000,
'trigger': 'seqüència automàtica',
'adquirir': 'automàtic',
'metadades': 'activat',
'binning': (1, 1)}
La variable només es pot canviar abans de cridar la funció record(). És un diccionari amb un nombre determinat d'entrades. No cal especificar tots els elements possibles. El següent sampEl codi del fitxer només canvia la "taxa de píxels" i no afecta cap altre element de la configuració.
amb pco.Camera() com a càmera:
cam.configuration = {'taxa de píxels': 286_000_000}
cam.record()
…
2.3 objectes
Aquesta secció descriu tots els objectes que ofereix la classe pco.Camera.
2.3.1 SDK
L'objecte SDK permet l'accés directe a totes les funcions subjacents del fitxer pco.sdk.
>>> cam.sdk.get_temperature()
{'temperatura del sensor': 7.0, 'temperatura de la càmera': 38.2, 'temperatura de potència': 36.7}
Tots els valors de retorn de les funcions sdk són diccionaris. Actualment no totes les configuracions de la càmera estan cobertes per la classe de càmera. Els paràmetres especials s'han d'establir directament trucant a la funció SDK corresponent.
2.3.2 Gravadora
L'objecte rec ofereix accés directe a totes les funcions subjacents del fitxer pco.recorder. No és necessari cridar directament un mètode de classe de gravador. Totes les funcions estan totalment cobertes pels mètodes de la classe Camera.
https://www.pco.de/applications/
| pco europa +49 9441 2005 50 info@pco.de pco.de |
pco Amèrica +1 866 678 4566 info@pco-tech.com pco-tech.com |
pco asia +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco Xina +86 512 67634643 info@pco.cn pco.cn |


Documents/Recursos
![]() | Kit de desenvolupament de programari Python |
Referències
- Escriptura - Reconeixement-SenseDerivades 4.0 Internacional - Creative Commonscreativecommons.org
- mailto:info@pco.depco.de
- PCO | Excelitaswww.pco.de
- PCO | Excelitaswww.pco.de
- Manual d'usuarimanual.tools
