Kit de desenvolvemento de software Python
Manual de usuario
Kit de desenvolvemento de software Python
PCO pídelle que lea atentamente e siga as instrucións deste documento.
Para calquera dúbida ou comentario, póñase en contacto connosco en calquera momento.
teléfono: +49 (0) 9441 2005 50
Fax: +49 (0) 9441 2005 20
Enderezo postal: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Alemaña
correo electrónico: info@pco.de
web: www.pco.de
manual de usuario pco.python 0.1.7
Publicado en decembro de 2021
©Copyright Excelitas PCO GmbH
Esta obra está baixo a licenza internacional Creative Commons Recoñecemento-Sen Derivados 4.0. Para view unha copia desta licenza, visite http://creativecommons.org/licenses/by-nd/4.0/ ou envíe unha carta a Creative Commons, PO Box 1866, Mountain View, CA 94042, EUA.
Xeral
O paquete Python pco ofrece todas as funcións para traballar con cámaras pco que se basean na actualidade pco.sdk. Inclúense todas as bibliotecas compartidas para a comunicación coa cámara e o posterior procesamento de imaxes.
- Clase de cámara fácil de usar
- Potente API para pco.sdk
- Gravación e tratamento de imaxes con pco.recorder
1.1 Instalación
Instalar desde pypi (recomendado):
$pip install pco
1.2 Uso básico
importar matplotlib.pyplot como plt
importar pco
con pco.Camera() como cámara:
cam.record()
imaxe, meta = cam.image()
plt.imshow(imaxe, cmap='gris')
plt.show()1.3 Rexistro de eventos e erros
Para activar a saída de rexistro, cree o obxecto Camera co parámetro debuglevel=.
O nivel de depuración pódese establecer nun dos seguintes valores:
- 'off' Desactiva todas as saídas.
- 'erro' Mostra só mensaxes de erro.
- 'verbose' Mostra todas as mensaxes.
- 'extra verbose' Mostra todas as mensaxes e valores.
O nivel de depuración predeterminado é "desactivado".
pco.Camera(debuglevel='verbose')
…
[[][sdk] get_camera_type: Aceptar.
O tempo opcionalamp= parámetro activa a tag na saída impresa. Os valores posibles son: 'on' e 'off'. O valor predeterminado é "desactivado".
pco.Camera(debuglevel='verbose', timestamp='on')
…
[2019/11/25 15:54:15.317855/0.016 s] [][sdk] get_camera_type: OK.
Documentación API
A clase pco.Camera ofrece os seguintes métodos:
- record() xera, configura e inicia unha nova instancia de gravadora.
- stop() detén a gravación actual.
- close() pecha a cámara activa actual e libera os recursos ocupados.
- image() devolve unha imaxe do gravador como matriz numpy.
- images() devolve todas as imaxes gravadas do gravador como unha lista de matrices numpy.
- image_average() devolve a imaxe media. Esta imaxe calcúlase a partir de todas as imaxes gravadas no búfer.
- set_exposure_time() establece o tempo de exposición para a cámara.
- wait_for_first_image() agarda pola primeira imaxe dispoñible na memoria da gravadora.
A clase pco.Camera ten a seguinte variable:
- configuración
A clase pco.Camera ten os seguintes obxectos:
- sdk ofrece acceso directo a todas as funcións subxacentes do ficheiro pco.sdk.
- gravadora ofrece acceso directo a todas as funcións subxacentes do pco.recorder.
2.1 Métodos
Esta sección describe todos os métodos que ofrece a clase pco.Camera.
2.1.1 Rexistro
Descrición Crea, configura e inicia unha nova instancia de gravadora. Debe establecerse toda a configuración da cámara antes de chamar a record(). O comando set_exposure_time() é a única excepción. Esta función non ten efecto sobre o obxecto gravador e pódese activar durante a gravación.
Prototipo def record(self, number_of_images=1, mode='sequence'):
Parámetro
Nome | Descrición |
número_de_imaxes | Establece o número de imaxes asignadas no controlador. A RAM do PC limita o valor máximo. |
modo | No modo "secuencia", esta función está bloqueando durante a gravación. A gravadora detense automaticamente cando se alcanza o número_de_imaxes. No modo "secuencia sen bloqueo", esta función non é bloqueadora. O estado debe comprobarse antes de ler unha imaxe. Este modo úsase para ler imaxes durante a gravación, por exemplo, miniaturas. No modo "buffer de anel" esta función non bloquea. O estado debe comprobarse antes de ler unha imaxe. A gravadora non detén a gravación cando se alcanza o número_de_imaxes. Unha vez que isto ocorre, as imaxes máis antigas son sobreescritas. No modo 'fifo', esta función non bloquea. O estado debe comprobarse antes de ler unha imaxe. Cando se alcanza o número_de_imaxes no fifo, as seguintes imaxes quítanse ata que se len as imaxes do fifo. |
2.1.2 Pare
Descrición Detén a gravación actual. No modo 'buffer de anel' e 'fifo', esta función debe ser chamada polo usuario. No modo "secuencia" e "secuencia sen bloqueo", esta función chámase automaticamente cando se alcanza o número_de_imaxes.
Prototipo def stop(self):
2.1.3 Pechar
Descrición Pecha a cámara activada e libera os recursos bloqueados. Esta función debe ser chamada antes de que a aplicación remate. En caso contrario, os recursos seguen ocupados.
Prototipo def close(self):
Esta función chámase automaticamente se o obxecto da cámara é creado pola instrución with. Xa non é necesaria unha chamada explícita a close().
con pco.Camera() como leva: # fai algunhas cousas
2.1.4 Imaxe
Descrición Devolve unha imaxe da gravadora. O tipo da imaxe é un numpy.ndarray. Esta matriz ten forma dependendo da resolución e do ROI da imaxe.
Prototipo def image(self, image_number=0, roi=None):
Parámetro
Nome | Descrición |
número_imaxe | Especifica o número da imaxe que se vai ler. No modo "secuencia" ou "secuencia sen bloqueo", o índice da gravadora coincide co número_imagen. Se image_number está definido como 0xFFFFFFFF, cópiase a última imaxe gravada. Isto permite crear un preview durante a gravación. |
roi | Establece a rexión de interese. Só esta rexión da imaxe cópiase no valor de retorno. |
Example >>> cam.record(número_de_imaxes=1, modo='secuencia')
>>> imaxe, meta = cam.image()
>>> escriba (imaxe) numpy.ndarray
>>> image.shape (2160, 2560)
>>> imaxe, metadatos = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300, 300)
2.1.5 Imaxes
Descrición Devolve todas as imaxes gravadas da gravadora como unha lista de matrices numpy.
Prototipo imaxes def (self, roi=None, blocksize=None):
Parámetro
Nome | Descrición |
roi | Establece a rexión de interese. Só esta rexión da imaxe cópiase no valor de retorno. |
tamaño de bloque | Define o número máximo de imaxes que se devolven. Este parámetro só é útil no modo 'fifo' e en condicións especiais. |
Example >>> cam.record(número_de_imaxes=20, modo='secuencia')
>>> imaxes, metadatos = cam.images()
>>> len(imaxes) 20
>>> para imaxes en imaxes:
…
print('Media: {:7.2f} DN'.format(image.mean()))
…
Media: 2147.64 DN
Media: 2144.61 DN
…
>>> imaxes = cam.images(roi=(1, 1, 300, 300))
>>> imaxes[0].forma (300, 300)
2.1.6 Imaxe_media
Descrición Devolve a imaxe media. Esta imaxe calcúlase a partir de todas as imaxes gravadas no búfer.
Prototipo def image_average(self, roi=None):
Parámetro
Nome | Descrición |
roi | Define a rexión de interese. Só esta rexión da imaxe cópiase no valor de retorno. |
Example >>> cam.record(número_de_imaxes=100, modo='secuencia')
>>> media = cam.image_average()
>>> avg = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Establecer_tempo_de_exposición
Descrición Establece o tempo de exposición da cámara.
Prototipo def set_exposure_time(self, exposición_tempo):
Parámetro
Nome | Descrición |
tempo de exposición | Debe indicarse como un valor flotante ou enteiro na unidade "segundo". Os valores subxacentes para a función sdk.set_delay_exposure_time(0, 'ms', time, timebase) calcularanse automaticamente. O tempo de atraso está establecido en 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Agardar_a_primeira_imaxe
Descrición Agarda pola primeira imaxe dispoñible na memoria da gravadora. No modo de gravación "secuencia sen bloqueo", "búfer de anel". e 'fifo', a función record() devolve inmediatamente. Polo tanto, esta función pódese usar para esperar imaxes da cámara antes de chamar a image(), images() ou image_average().
Prototipo def wait_for_first_image(self):
2.2 Configuración variable
Os parámetros da cámara actualízanse cambiando a variable de configuración.
cam.configuration = {'tempo de exposición': 10e-3,
'roi': (1, 1, 512, 512),
'o máis tempoamp': 'ascii',
'taxa de píxeles': 100_000_000,
'trigger': 'secuencia automática',
'adquirir': 'automático',
'metadata': 'on',
'binning': (1, 1)}
A variable só se pode cambiar antes de que se chame a función record(). É un dicionario cun certo número de entradas. Non é preciso especificar todos os elementos posibles. Os seguintes sampO código do ficheiro só cambia a "taxa de píxeles" e non afecta a ningún outro elemento da configuración.
con pco.Camera() como cámara:
cam.configuration = {'taxa de píxeles': 286_000_000}
cam.record()
…
2.3 Obxectos
Esta sección describe todos os obxectos que ofrece a clase pco.Camera.
2.3.1 SDK
O obxecto sdk permite o acceso directo a todas as funcións subxacentes do ficheiro pco.sdk.
>>> cam.sdk.get_temperature()
{'temperatura do sensor': 7.0, 'temperatura da cámara': 38.2, 'temperatura da potencia': 36.7}
Todos os valores de retorno das funcións sdk son dicionarios. Non todas as configuracións da cámara están actualmente cubiertas pola clase Cámara. As configuracións especiais deben establecerse directamente chamando á función sdk respectiva.
2.3.2 Gravadora
O obxecto rec ofrece acceso directo a todas as funcións subxacentes do pco.recorder. Non é necesario chamar directamente a un método de clase gravadora. Todas as funcións están totalmente cubertas polos métodos da clase 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 china +86 512 67634643 info@pco.cn pco.cn |
Documentos/Recursos
![]() |
EXCELITAS TECHNOLOGIES Kit de desenvolvemento de software Python [pdfManual do usuario Kit de desenvolvemento de software Python, kit de desenvolvemento de software, kit de desenvolvemento, kit |