PDA

View Full Version : [C - C++] Alcune informazioni sull'uso di opencv nei processi di visione industriale


Tubo Catodico
25-01-2014, 13:22
Ciao a tutti, avrei bisogno di alcune informazioni di massima sull'uso di opencv. Nell'azienda per cui lavoro facciamo automazione per collaudi industriali. Gran parte del lavoro è basata su telecamere, più o meno complesse, che catturano frame e video che vengono poi elaborati per l'estrazione di informazioni di interesse: il coloro di un LED, la forma e la misura di un dato oggetto, il funzionamento di un display a matrice etc.
Il software è attualmente sviluppato tramite Labview che, grazie a una serie di librerie apposite, facilita molto la gestione della visione. Il problema è che è necessario pagare ogni volta che installiamo le librerie per la visione in una macchina del cliente. Vorremmo dunque staccarci da questa limitazione e stavamo pensando di scrivere delle DLL, che gestiscano la visione, da richiamare tramite labview. Opencv è una delle possibilità.
Mi interessava capire se opencv è pensato anche per applicazioni industriali quali: color matching, pattern mathcing, OCR, lettura codice a barre e così via.
Non disdegno inoltre informazioni su eventuali risorse online e letterarie su cui cercare.

Grazie in anticipo a chi avrà la pazienza di rispondermi! ;)

Tubo Catodico
28-01-2014, 07:03
Up. Mi accontento anche di un buon forum di programmazione! :D

sottovento
28-01-2014, 09:57
OpenCV e' fatto per questo tipo di applicazioni e trovi tutto quello che ti serve.
Dunque, quello che vuoi fare e' un CIN implementato usando OpenCV... e' sicuramente fattibile ma ricordati che OpenCV e' potente ma non e' facilissimo, occorre perderci tempo ad imparare ad usarlo, ad ottimizzare le operazioni, ...
In particolare, fai attenzione alle immagini temporanee che inavvertitamente potresti creare: se hai dei problemi di performance (OpenCV e' veramente performante) fai una verifica in questo senso.

Tutte le operazioni che hai citato sono implementabili in OpenCV, e su internet puoi anche trovare gli esempi che ti servono. Certo, non sara' semplice e veloce come LabView, occorre avere pazienza

Tubo Catodico
28-01-2014, 12:38
Certo, non sara' semplice e veloce come LabView, occorre avere pazienza

Prima di tutto grazie per la risposta. Ne posso dunque concludere che qualsiasi operazione che già facciamo tramite Labview è possibile anche tramite OpenCV?
Mentre di richiamare in labview la dll creata tramite opencv che ne pensi? Sarà fattibile in tempi, non dico brevi, ma recenti?
Tieni conto che non ci possiamo staccare del tutto da Labview perchè tutto il software che non riguarda le immagini, ma anche quello attualmente, è fatto lì...

sottovento
29-01-2014, 04:12
Prima di tutto grazie per la risposta. Ne posso dunque concludere che qualsiasi operazione che già facciamo tramite Labview è possibile anche tramite OpenCV?
Mentre di richiamare in labview la dll creata tramite opencv che ne pensi? Sarà fattibile in tempi, non dico brevi, ma recenti?
Tieni conto che non ci possiamo staccare del tutto da Labview perchè tutto il software che non riguarda le immagini, ma anche quello attualmente, è fatto lì...
Beh, non posso garantire che tutte le operazioni che fate ci siano. Pero' c'e' un'altissima probabilita' che sia cosi, anzi che OpenCV abbia un insieme piu' ampio di operazioni. E' una libreria molto ampia ed efficiente.
E' un pezzo che non lavoro con labview, ma mi ricordo che c'erano due modi diversi per richiamare del codice: via CIN node, oppure richiamando direttamente le funzioni offerte da una DLL. Entrambi i modi erano abbastanza semplici, e le informazioni fornite in rete sono piu' che sufficienti.
Questo non dovrebbe essere un problema, penso che per risolverlo sia sufficiente mezza giornata.

Tubo Catodico
29-01-2014, 07:07
No, infatti non mi preoccupa come richiamare il codice in Labview ma ero dubbioso, ma perché ignorante, delle possibilità di OpenCV. Grazie per le risposte, mi sono state molto utili!