
Kit de développement logiciel Python
Manuel d'utilisation

Kit de développement logiciel Python
Le PCO vous demande de lire attentivement et de suivre les instructions contenues dans ce document.
Pour toute question ou commentaire, n'hésitez pas à nous contacter à tout moment.
téléphone: +49 (0) 9441 2005 50
télécopieur : +49 (0) 9441 2005 20
adresse postale : Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Allemagne
e-mail: info@pco.de
web: www.pco.de
manuel d'utilisation pco.python 0.1.7
Sortie décembre 2021
© Copyright Excelitas PCO GmbH
Ce travail est sous licence Creative Commons Attribution-No Derivatives 4.0 International License. Pour view une copie de cette licence, visitez http://creativecommons.org/licenses/by-nd/4.0/ ou envoyez une lettre à Creative Commons, PO Box 1866, Mountain View, CA 94042, États-Unis.
Général
Le package Python pco offre toutes les fonctions permettant de travailler avec des caméras pco basées sur le pco.sdk. Toutes les bibliothèques partagées pour la communication avec la caméra et le traitement d'image ultérieur sont incluses.
- Classe de caméra facile à utiliser
- API puissante pour pco.sdk
- Enregistrement et traitement d'images avec pco.enregistreur
1.1 Installation
Installer à partir de pypi (recommandé) :
$ pip installer pco
1.2 Utilisation de base
importer matplotlib.pyplot comme plt
importer pco
avec pco.Camera() comme cam :
cam.record()
image, méta = cam.image()
plt.imshow(image, cmap='gray')
plt.montrer()
1.3 Journalisation des événements et des erreurs
Pour activer la sortie de journalisation, créez l'objet Camera avec le paramètre debuglevel=.
Le niveau de débogage peut être défini sur l'une des valeurs suivantes :
- 'off' Désactive toutes les sorties.
- 'error' Affiche uniquement les messages d'erreur.
- 'verbose' Affiche tous les messages.
- 'extra verbose' Affiche tous les messages et valeurs.
Le niveau de débogage par défaut est 'off'.
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type : OK.
L'horodatage facultatifamp= paramètre active un tag dans la sortie imprimée. Les valeurs possibles sont : 'on' et 'off'. La valeur par défaut est 'off'.
pco.Camera(debuglevel='verbose', timestamp='on')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type : OK.
Documentation de l'API
La classe pco.Camera propose les méthodes suivantes :
- record() génère, configure et démarre une nouvelle instance d'enregistreur.
- stop() arrête l'enregistrement en cours.
- close() ferme la caméra active en cours et libère les ressources occupées.
- image() renvoie une image de l'enregistreur sous forme de tableau numpy.
- images() renvoie toutes les images enregistrées à partir de l'enregistreur sous la forme d'une liste de tableaux numpy.
- image_average() renvoie l'image moyennée. Cette image est calculée à partir de toutes les images enregistrées dans la mémoire tampon.
- set_exposure_time() définit le temps d'exposition de la caméra.
- wait_for_first_image() attend la première image disponible dans la mémoire de l'enregistreur.
La classe pco.Camera a la variable suivante :
- configuration
La classe pco.Camera a les objets suivants :
- sdk offre un accès direct à toutes les fonctions sous-jacentes du pco.sdk.
- l'enregistreur offre un accès direct à toutes les fonctions sous-jacentes du pco.enregistreur.
2.1 Méthodes
Cette section décrit toutes les méthodes proposées par la classe pco.Camera.
2.1.1 Enregistrement
Description Crée, configure et démarre une nouvelle instance d'enregistreur. La configuration complète de la caméra doit être définie avant d'appeler record(). La commande set_exposure_time() est la seule exception. Cette fonction n'a aucun effet sur l'objet enregistreur et peut être appelée pendant l'enregistrement.
Prototype def record(self, number_of_images=1, mode='sequence'):
Paramètre
| Nom | Description |
| nombre_d'images | Définit le nombre d'images allouées dans le pilote. La RAM du PC limite la valeur maximale. |
| mode | En mode 'séquence', cette fonction est bloquante pendant l'enregistrement. L'enregistreur s'arrête automatiquement lorsque le nombre d'images est atteint. En mode 'séquence non bloquante', cette fonction est non bloquante. L'état doit être vérifié avant de lire une image. Ce mode est utilisé pour lire des images pendant l'enregistrement, par exemple une vignette. En mode 'ring buffer' cette fonction est non bloquante. L'état doit être vérifié avant de lire une image. L'enregistreur n'arrête pas l'enregistrement lorsque le nombre d'images est atteint. Une fois que cela se produit, les images les plus anciennes sont écrasées. En mode 'fifo', cette fonction est non bloquante. L'état doit être vérifié avant de lire une image. Lorsque le nombre d'images dans le fifo est atteint, les images suivantes sont supprimées jusqu'à ce que les images soient lues à partir du fifo. |
2.1.2 Stop
Description Arrête l'enregistrement en cours. En mode 'ring buffer' et 'fifo', cette fonction doit être appelée par l'utilisateur. En mode 'séquence' et 'séquence non bloquante', cette fonction est automatiquement appelée lorsque le nombre_d'images est atteint.
Prototype def stop(auto):
2.1.3 Fermer
Description Ferme la caméra activée et libère les ressources bloquées. Cette fonction doit être appelée avant la fin de l'application. Sinon, les ressources restent occupées.
Prototype def close(soi) :
Cette fonction est appelée automatiquement si l'objet caméra est créé par l'instruction with. Un appel explicite à close() n'est plus nécessaire.
avec pco.Camera() comme cam : # faire des trucs
2.1.4 Image
Description Renvoie une image de l'enregistreur. Le type de l'image est un numpy.ndarray. Ce tableau est façonné en fonction de la résolution et du retour sur investissement de l'image.
Prototype def image(self, image_number=0, roi=Aucun) :
Paramètre
| Nom | Description |
| numéro_image | Spécifie le numéro de l'image à lire. En mode 'séquence' ou 'séquence non bloquante', l'index de l'enregistreur correspond au numéro_image. Si image_number est défini sur 0xFFFFFFFF, la dernière image enregistrée est copiée. Cela permet de créer un pré liveview pendant l'enregistrement. |
| roi | Définit la région d'intérêt. Seule cette région de l'image est copiée dans la valeur de retour. |
Example >>> cam.record(nombre_d'images=1, mode='séquence')
>>> image, meta = cam.image()
>>> tapez (image) numpy.ndarray
>>> image.forme (2160, 2560)
>>> image, metadata = cam.image(roi=(1, 1, 300, 300))
>>> image.forme (300, 300)
2.1.5 XNUMX images
Description Renvoie toutes les images enregistrées à partir de l'enregistreur sous forme de liste de tableaux numpy.
Prototype def images (self, roi=Aucun, blockize=Aucun) :
Paramètre
| Nom | Description |
| roi | Définit la région d'intérêt. Seule cette région de l'image est copiée dans la valeur de retour. |
| taille du bloc | Définit le nombre maximal d'images renvoyées. Ce paramètre n'est utile qu'en mode 'fifo' et dans des conditions particulières. |
Example >>> cam.record(nombre_d'images=20, mode='séquence')
>>> images, metadata = cam.images()
>>> len(images) 20
>>> pour l'image dans les images :
…
print('Moyenne : {:7.2f} DN'.format(image.mean()))
…
Moyenne : 2147.64 DN
Moyenne : 2144.61 DN
…
>>> images = cam.images(roi=(1, 1, 300, 300))
>>> images[0].forme (300, 300)
2.1.6 Image_moyenne
Description Renvoie l'image moyennée. Cette image est calculée à partir de toutes les images enregistrées dans la mémoire tampon.
Prototype def image_average(self, roi=Aucun) :
Paramètre
| Nom | Description |
| roi | Définit la région d'intérêt. Seule cette région de l'image est copiée dans la valeur de retour. |
Example >>> cam.record(nombre_d'images=100, mode='séquence')
>>> moy = cam.image_average()
>>> moy = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Définir_temps_d'exposition
Description Définit le temps d'exposition de la caméra.
Prototype def set_exposure_time (soi, temps d'exposition):
Paramètre
| Nom | Description |
| délai d'exposition | Doit être donné sous forme de nombre flottant ou entier dans l'unité 'seconde'. Les valeurs sous-jacentes de la fonction sdk.set_delay_exposure_time(0, 'ms', time, timebase) seront calculées automatiquement. Le temps de retard est réglé sur 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Attendre_la_première_image
Description Attend la première image disponible dans la mémoire de l'enregistreur. En mode enregistreur 'séquence non bloquante', 'ring buffer'. et 'fifo', la fonction record() revient immédiatement. Par conséquent, cette fonction peut être utilisée pour attendre les images de la caméra avant d'appeler image(), images() ou image_average().
Prototype def wait_for_first_image(self):
2.2 Configuration des variables
Les paramètres de la caméra sont mis à jour en modifiant la variable de configuration.
cam.configuration = {'temps d'exposition' : 10e-3,
'roi' : (1, 1, 512, 512),
'le plusamp': 'ascii',
'taux de pixels' : 100_000_000,
'trigger' : 'séquence automatique',
'acquérir' : 'auto',
'métadonnées' : 'activé',
'regroupement' : (1, 1)}
La variable ne peut être modifiée qu'avant l'appel de la fonction record(). C'est un dictionnaire avec un certain nombre d'entrées. Il n'est pas nécessaire de spécifier tous les éléments possibles. Les suivantsampLe code ne change que le 'taux de pixels' et n'affecte aucun autre élément de la configuration.
avec pco.Camera() comme cam :
cam.configuration = {'taux de pixels' : 286_000_000}
cam.record()
…
Objets 2.3
Cette section décrit tous les objets proposés par la classe pco.Camera.
Kit de développement logiciel 2.3.1
L'object sdk permet un accès direct à toutes les fonctions sous-jacentes du pco.sdk.
>>> cam.sdk.get_temperature()
{'température du capteur' : 7.0, 'température de la caméra' : 38.2, 'température de l'alimentation' : 36.7}
Toutes les valeurs de retour des fonctions sdk sont des dictionnaires. Tous les paramètres de caméra ne sont pas actuellement couverts par la classe Camera. Les paramètres spéciaux doivent être définis directement en appelant la fonction sdk correspondante.
2.3.2 Flûte à bec
L'objet rec offre un accès direct à toutes les fonctions sous-jacentes du pco.enregistreur. Il n'est pas nécessaire d'appeler directement une méthode de classe d'enregistreur. Toutes les fonctions sont entièrement couvertes par les méthodes de la classe Camera.
https://www.pco.de/applications/
| bp europe +49 9441 2005 50 info@pco.de pco.de |
pco amérique +1 866 678 4566 info@pco-tech.com pco-tech.com |
pco asie +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco chine +86 512 67634643 info@pco.cn pco.cn |


Documents / Ressources
![]() |
EXCELITAS TECHNOLOGIES Kit de développement logiciel Python [pdf] Manuel de l'utilisateur Kit de développement logiciel Python, Kit de développement logiciel, Kit de développement, Kit |




