Kit di sviluppo software Python
Manuale d'uso
Kit di sviluppo software Python
PCO ti chiede di leggere attentamente e seguire le istruzioni contenute in questo documento.
Per qualsiasi domanda o commento, non esitate a contattarci in qualsiasi momento.
telefono: +49 (0) 9441 2005 50
fax: +49 (0) 9441 2005 20
indirizzo postale: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Germania
e-mail: info@pco.de
web: www.pco.de
pco.python manuale utente 0.1.7
Rilasciato a dicembre 2021
©Copyright Excelitas PCO GmbH
Quest'opera è distribuita con licenza Creative Commons Attribution-No Derivatives 4.0 International. A view una copia di questa licenza, visitare http://creativecommons.org/licenses/by-nd/4.0/ o inviare una lettera a Creative Commons, PO Box 1866, Mountain View, CA 94042, Stati Uniti.
Generale
Il pacchetto Python pco offre tutte le funzioni per lavorare con le telecamere pco basate sulla corrente pco.sdk. Sono incluse tutte le librerie condivise per la comunicazione con la fotocamera e la successiva elaborazione delle immagini.
- Classe di fotocamera facile da usare
- API potente per pco.sdk
- Registrazione ed elaborazione delle immagini con pco.registratore
1.1 Installazione
Installa da pypi (consigliato):
$ pip installa pco
1.2 Utilizzo di base
importa matplotlib.pyplot come plt
importa pco
con pco.Camera() come cam:
cam.record()
immagine, meta = cam.immagine()
plt.imshow(immagine, cmap='grigio')
plt.mostra()1.3 Registrazione di eventi ed errori
Per attivare l'output di registrazione, creare l'oggetto Camera con il parametro debuglevel=.
Il livello di debug può essere impostato su uno dei seguenti valori:
- 'off' Disabilita tutte le uscite.
- 'error' Mostra solo i messaggi di errore.
- 'verbose' Mostra tutti i messaggi.
- 'extra verbose' Mostra tutti i messaggi ei valori.
Il livello di debug predefinito è 'off'.
pco.Camera(debuglevel='verbose')
…
[][sdk] get_camera_type: Ok.
Il tempo facoltativoamp= il parametro attiva a tag nell'output stampato. I valori possibili sono: 'on' e 'off'. Il valore predefinito è 'off'.
pco.Camera(debuglevel='verbose', timestamp='su')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: OK.
Documentazione API
La classe pco.Camera offre i seguenti metodi:
- record() genera, configura e avvia una nuova istanza del registratore.
- stop() interrompe la registrazione corrente.
- close() chiude la telecamera attiva corrente e rilascia le risorse occupate.
- image() restituisce un'immagine dal registratore come array numpy.
- images() restituisce tutte le immagini registrate dal registratore come un elenco di array numpy.
- image_average() restituisce l'immagine media. Questa immagine viene calcolata da tutte le immagini registrate nel buffer.
- set_exposure_time() imposta il tempo di esposizione per la fotocamera.
- wait_for_first_image() attende la prima immagine disponibile nella memoria del registratore.
La classe pco.Camera ha la seguente variabile:
- configurazione
La classe pco.Camera ha i seguenti oggetti:
- sdk offre accesso diretto a tutte le funzioni sottostanti di pco.sdk.
- registratore offre accesso diretto a tutte le funzioni sottostanti del pco.registratore.
2.1 Metodi
Questa sezione descrive tutti i metodi offerti dalla classe pco.Camera.
2.1.1 Registrazione
Descrizione Crea, configura e avvia una nuova istanza del registratore. L'intera configurazione della telecamera deve essere impostata prima di chiamare record(). Il comando set_exposure_time() è l'unica eccezione. Questa funzione non ha effetto sull'oggetto registratore e può essere richiamata durante la registrazione.
Prototipo def record(self, numero_di_immagini=1, modalità='sequenza'):
Parametro
Nome | Descrizione |
numero_di_immagini | Imposta il numero di immagini allocate nel driver. La RAM del PC limita il valore massimo. |
modalità | In modalità 'sequenza', questa funzione blocca durante la registrazione. Il registratore si arresta automaticamente quando viene raggiunto il numero_di_immagini. In modalità 'sequenza non bloccante', questa funzione non è bloccante. Lo stato deve essere controllato prima di leggere un'immagine. Questa modalità viene utilizzata per leggere le immagini durante la registrazione, ad esempio le miniature. In modalità 'ring buffer' questa funzione non è bloccante. Lo stato deve essere controllato prima di leggere un'immagine. Il registratore non interrompe la registrazione quando viene raggiunto il numero_di_immagini. Una volta che ciò accade, le immagini più vecchie vengono sovrascritte. In modalità 'fifo', questa funzione non è bloccante. Lo stato deve essere controllato prima di leggere un'immagine. Quando viene raggiunto il numero_di_immagini nel fifo, le seguenti immagini vengono scartate finché le immagini non vengono lette dal fifo. |
2.1.2 Stop
Descrizione Arresta la registrazione corrente. In modalità 'ring buffer' e 'fifo', questa funzione deve essere richiamata dall'utente. In modalità 'sequenza' e 'sequenza non bloccante', questa funzione viene richiamata automaticamente al raggiungimento del numero_di_immagini.
Prototipo def stop(self):
2.1.3 Chiudi
Descrizione Chiude la fotocamera attivata e rilascia le risorse bloccate. Questa funzione deve essere chiamata prima che l'applicazione venga terminata. In caso contrario, le risorse rimangono occupate.
Prototipo def chiudi(self):
Questa funzione viene chiamata automaticamente se l'oggetto camera viene creato dall'istruzione with. Una chiamata esplicita a close() non è più necessaria.
con pco.Camera() come cam: # fa qualcosa
2.1.4 Immagine
Descrizione Restituisce un'immagine dal registratore. Il tipo dell'immagine è un numpy.ndarray. Questo array viene modellato in base alla risoluzione e al ROI dell'immagine.
Prototipo def immagine(self, numero_immagine=0, roi=Nessuno):
Parametro
Nome | Descrizione |
numero_immagine | Specifica il numero dell'immagine da leggere. In modalità 'sequenza' o 'sequenza non bloccante', l'indice del registratore corrisponde a image_number. Se image_number è impostato su 0xFFFFFFFF, viene copiata l'ultima immagine registrata. Ciò consente di creare un live preview durante la registrazione. |
ritorno sull'investimento | Imposta la regione di interesse. Solo questa regione dell'immagine viene copiata nel valore restituito. |
Example >>> cam.record(numero_di_immagini=1, modalità='sequenza')
>>> immagine, meta = cam.immagine()
>>> type(image) numpy.ndarray
>>> immagine.forma (2160, 2560)
>>> immagine, metadati = cam.image(roi=(1, 1, 300, 300))
>>> immagine.forma (300, 300)
2.1.5 Immagini
Descrizione Restituisce tutte le immagini registrate dal registratore come un elenco di array numpy.
Prototipo def immagini(self, roi=Nessuno, blocksize=Nessuno):
Parametro
Nome | Descrizione |
ritorno sull'investimento | Imposta la regione di interesse. Solo questa regione dell'immagine viene copiata nel valore restituito. |
dimensione del blocco | Definisce il numero massimo di immagini restituite. Questo parametro è utile solo in modalità 'fifo' e in condizioni particolari. |
Example >>> cam.record(numero_di_immagini=20, modalità='sequenza')
>>> immagini, metadati = cam.images()
>>> len(immagini) 20
>>> per immagine nelle immagini:
…
print('Media: {:7.2f} DN'.format(image.mean()))
…
Media: 2147.64 DN
Media: 2144.61 DN
…
>>> immagini = cam.immagini(roi=(1, 1, 300, 300))
>>> immagini[0].shape (300, 300)
2.1.6 Immagine_media
Descrizione Restituisce l'immagine media. Questa immagine viene calcolata da tutte le immagini registrate nel buffer.
Prototipo def image_average(self, roi=Nessuno):
Parametro
Nome | Descrizione |
ritorno sull'investimento | Definisce la regione di interesse. Solo questa regione dell'immagine viene copiata nel valore restituito. |
Example >>> cam.record(numero_di_immagini=100, modalità='sequenza')
>>> media = cam.image_average()
>>> avg = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 Imposta_tempo_di_esposizione
Descrizione Imposta il tempo di esposizione della fotocamera.
Prototipo def imposta_tempo_di_esposizione(self, tempo_di_esposizione):
Parametro
Nome | Descrizione |
tempo di esposizione | Deve essere fornito come valore float o intero nell'unità 'secondo'. I valori sottostanti per la funzione sdk.set_delay_exposure_time(0, 'ms', time, timebase) verranno calcolati automaticamente. Il tempo di ritardo è impostato su 0. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 Attendi_la_prima_immagine
Descrizione Attende la prima immagine disponibile nella memoria del registratore. In modalità registratore 'sequenza non bloccante', 'ring buffer'. e 'fifo', la funzione record() ritorna immediatamente. Pertanto, questa funzione può essere utilizzata per attendere le immagini dalla fotocamera prima di chiamare image(), images() o image_average().
Prototipo def aspetta_per_prima_immagine(self):
2.2 Configurazione delle variabili
I parametri della telecamera vengono aggiornati modificando la variabile di configurazione.
cam.configuration = {'tempo di esposizione': 10e-3,
'roi': (1, 1, 512, 512),
'tempoamp': 'ascii',
'frequenza pixel': 100_000_000,
'trigger': 'sequenza automatica',
'acquisire': 'auto',
'metadati': 'on',
'binding': (1, 1)}
La variabile può essere modificata solo prima che venga chiamata la funzione record(). È un dizionario con un certo numero di voci. Non tutti i possibili elementi devono essere specificati. I seguentiampil codice modifica solo il "pixel rate" e non influisce su nessun altro elemento della configurazione.
con pco.Camera() come cam:
cam.configuration = {'pixel rate': 286_000_000}
cam.record()
…
2.3 oggetti
Questa sezione descrive tutti gli oggetti offerti dalla classe pco.Camera.
2.3.1 Pacchetto di sviluppo software
L'oggetto sdk consente l'accesso diretto a tutte le funzioni sottostanti del pco.sdk.
>>> cam.sdk.get_temperature()
{'temperatura sensore': 7.0, 'temperatura fotocamera': 38.2, 'temperatura alimentazione': 36.7}
Tutti i valori restituiti dalle funzioni sdk sono dizionari. Non tutte le impostazioni della fotocamera sono attualmente coperte dalla classe Fotocamera. Le impostazioni speciali devono essere impostate direttamente chiamando la rispettiva funzione sdk.
2.3.2 Registratore
L'oggetto rec offre accesso diretto a tutte le funzioni sottostanti di pco.registratore. Non è necessario chiamare direttamente un metodo della classe del registratore. Tutte le funzioni sono completamente coperte dai metodi della classe Camera.
https://www.pco.de/applications/
pco europa +49 9441 2005 50 info@pco.de pco.de |
pc america +1 866 678 4566 info@pco-tech.com pco-tech.com |
PCO asiatico +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco cina +86 512 67634643 info@pco.cn pco.cn |
Documenti / Risorse
![]() |
EXCELITAS TECHNOLOGIES Kit di sviluppo software Python [pdf] Manuale d'uso Kit di sviluppo software Python, kit di sviluppo software, kit di sviluppo, kit |