OpenCV creare una libreria per LabVIEW [2/2]

Aos

Come abbiamo visto nel post precedente, la creazione di una libreria di OpenCV, è una procedura semplice e immediata basata su 3 file:

1) header file, dove includere le classi della libreria e l’interfaccia
2) .cpp file, dove implementare le funzioni di interfaccia
3) Main function, la quale richiama l’interfaccia della libreria

In questo post, la main function verrà sostituita da un VI sviluppato in LabVIEW, integrando le funzionalità messe a disposizione da OpenCV con il linguaggio di programmazione G.

Al fine di testare la libreria, la main function è stata inizialmente sviluppata in Visual Studio. Il passo successivo è quello di replicare la main function in ambiente LabVIEW considerando il seguente schema:

1L’inserimento della libreria in LabVIEW avviene attraverso il call library function nodeche si trova sotto il menu Connectivity->Libraries & Executables disponibile nella functions palette.
Aprendo il blocco bisogna completarne i campi quali posizione della libreria, funzione di interfaccia e parametri entranti e uscenti.

Come mostra la figura precedente, il prototipo della funzione (evidenziato dall’ultimo riquadro in blu) ritorna e ha come parametri formali void. Per riempire correttamente i campi del prototipo, apriamo il file hough_aos.h, sviluppato nel post precedente. A questo punto riportiamo, nel tab Parameters della finestra della call library function, esattamente gli stessi parametri formali e parametro di ritorno, in numero e tipo di dato specificati nel prototipo calcola_cerchi all’interno del file hough_aos.h

3

Questo procedimento va ripetuto per tutte le funzioni di interfaccia della libreria che vogliamo usare. In questo esempio ne abbiamo due: calcola_cerchi e ottieni_cerchi.

Il passo finale è quello di implementare la parte rimanente della main function utilizzando tool e blocchi messi a disposizione, in particolare considerando questo esempio occorre:

1) acquisire l’immagine da analizzare in BW
2) estrazione del dato immagine in un array bidimensionale
3) passaggio dati alle librerie
4) visualizzazione del risultato, disegno dei cerchi individuati

Per la funzione di disegno cerchi OpenCV mette a disposizione la funzione circle la quale può essere integrata anch’essa in ambiente LabVIEW, con una DLL. Tuttavia lo stesso risultato si può ottenere in LabVIEW come mostrato nella figura precedente. Questo testimonia il fatto che è opportuno ricorrere alla creazione di DLL in OpenCV nel momento in cui il toolkit di visione di LabVIEW non presenta tale funzionalità. La prossima immagine mostra il front panel con il VI in funzione:

2

Reference: NI Community

 

Francesco Celiberti
Ciao a tutti,

mi chiamo Francesco, sono laureato in Ing. Informatica e dell'Automazione. Sono attualmente coinvolto in un progetto di ricerca Europeo, MOTORIST. www.motorist-ptw.eu
Tags: , ,
By Francesco Celiberti | febbraio 11th, 2015 | LEAVE A COMMENT