Passa ai contenuti principali

OPENCV (VS.2.1)

TATEO's INTERDISCIPLINARY LIFELONG LEARNING
ENCYCLOPEDIA
ARTIFICIAL VISION

Developing Image Processing algorithms using OpenCV library

{Sviluppare algoritmi di image processing utilizzando la libreria OpenCV}


Hashtag keywords: #TateoBlog #artificialVision #imageProcessing #openCV #computerVision #openSource

Summary. Description of the computer vision library known with the OpenCV name, that is one of the most diffuse, because, even if it is open source type, it contains all the tools that are necessary to implement image processing algorithms, also for complex application, like for example of augmented reality application, and that for applications that can run both on personal computer and on mobile devices.

{Descrizione della libreria di computer vision nota col nome di OpenCV, che è una delle più diffuse perché, pur essendo sia ti tipo open source, contiene tutti gli strumenti utili per implementare algoritmi di elaborazione di immagini, anche per applicazioni complesse, come per esempio di Realtà Aumentata (AR), e per applicazioni che possono essere eseguite sia su personal computer che su dispositivi mobili}


You are here: <TILL> - <LEARNING> - <ARTIFICIAL VISION> - <IMAGE PROCESSING> - <OPENCV>


~ o ~ 


1. La libreria OpenCV

OpenCV è una libreria di computer vision di tipo open source. Attualmente è diventata molto popolare: si pensi che ha superato i 9 milioni di download. Originariamente è stata utilizzata principalmente per la ricerca e la prototipazione, Negli ultimi anni OpenCV è stata sempre più utilizzati nei prodotti distribuiti su una vasta gamma di piattaforme dal cloud al mobile. L'ultima versione, la 3.0, è attualmente in beta, ed è una revisione importante perché include il supporto esteso per la visione 3D.


Questo post è nato per condividere le informazioni sulle caratteristiche salienti di questa favolosa risorsa open source. Io descrivo di seguito per sommi capi, gli ambienti di sviluppo che sono più utilizzati per sviluppare software che include OpenCV. Mi auguro che troviate interessante l'argomento di questo post e che decidiate di condividere con me questa avventura.

La libreria OpenCV (Open Source Computer Vision) è una collezione "free" e "open source" di algoritmi per la computer vision e l'image processing. OpenCV contiene più di 500 funzioni che trovano applicazione in diverse aree della visione artificiale, come per esempio la ispezione automatica dei prodotti per il controllo industriale di processo e/o qualità, la elaborazione di immagini biomediche, la video-sorveglianza e la sicurezza, l'interfacciamento e l'interazione con l'utente (game interfaces), la calibrazione, la stereo visione, la robotica (unmanned flying vehicles).


La libreria OpenCV inoltre ha trovato applicazione anche nel campo del riconoscimento di suoni e musica, per mezzo della estensione delle tecniche di riconoscimento visivo allo spettro sonoro.


La libreria OpenCV è scritta in C e C++ ed é completamente portabile grazie a versioni per i sistemi: MS-Windows; Linux-Ubuntu; FreeBSD (Berkeley Software Distribution); Unix; MacOSX; iOS sviluppato da Apple per iPhone; Android basato su Linux e dedicato ai dispositivi mobili.


~ o ~ 


2. Open Source

Il punto di forza della libreria è la sua natura "open source". La possibilità di visionare il codice sorgente, di modificarlo ed ottimizzarlo ne garantisce una continua evoluzione, ottimizzazione e consolidamento. La licenza di distribuzione è priva di royalty e ciò consente il suo utilizzo anche in prodotti commerciali a condizione di mantenere le note di copyright. OpenCV costituisce quindi una infrastruttura aperta e gratuita, compatibile con la Intel Image Processing Library (IPL). Si osservi che la IPL è free ma non è open source, quindi la OpenCV ereditandone alcune strutture dati se ne garantisce la compatibilità, facendo in modo che il suo codice sia automaticamente ottimizzato per i processori Intel

OpenCV, grazie alla sua implementazione in codice C ottimizzato per le architetture Intel, è fortemente orientato alle applicazioni real-time che intendono sfruttare al massimo le potenzialità delle architetture multi-core.


~ o ~ 


3. Development Tools
{Strumenti di sviluppo}

Per realizzare applicazioni software che utilizzino le librerie OpenCV é necessario disporre di alcuni strumenti di sviluppo (Integrated Development Environments). In riferimento al tipo di sistema su cui deve funzionare l'applicazione (MS-Windows, Apple, iPhone, Android), del tipo di ambiente (desktop, embedded, mobile device, web) che si vuole produrre, e del linguaggio di programmazione che si preferisce utilizzare (C, C++, Java, Python), occorrono degli strumenti specifici.

Gli strumenti di sviluppo, più comuni sono per esempio:
  • Microsoft Visual Studio per chi è abituato a programmare in C/C++,
  • Qt (http://qt.digia.com/) è uno degli IDE cross-platform e open source che sono disponibili per sviluppare applicazioni utilizzando il linguaggio C++.
  • Eclipse IDE (la versione 3.7 Indigo é la versione suggerita per OpenCV 2.4.x),
  • Eclipse ADT (Android Developer Tools) di Google per lo sviluppo Android,
  • Eclipse J2EE per lo sviluppo web;
  • Android SDK, Android NDK (Native Development Kit) per compilare codice c++ per piattaforme Android;
  • Tegra Android Development Pack (TADP);
  • Sun JDK (Java Development Kit);
  • Eclipse CDT (C/C++ Development Tooling)
  • Builder che é un plugin di Eclipse IDE utile per integrare codice c++ compilato con Android NDK;
  • Android Virtual Device (AVD) Manager che è utile per testare e debaggare le applicazioni;
  • CMake 2.8.8
  • Xcode 4.2 per installazioni su iOS oppure Mac OS X.
  • NetBeans IDE per utilizzare OpenCv su Ubuntu, per sviluppatori Java, ma anche C/C++ e PHP. Per sviluppare applicazioni desktop, mobile e web.
Inoltre, a seconda del compilatore e del sistema operativo che abbiamo deciso di utilizzare, occorre una versione specifica della libreria OpenCV.


~ o ~ 


4. References and Insight


Riporto di seguito alcuni riferimenti a siti web, filmati e libri che potresti utilizzare per approfondire gli argomenti trattati nel presente articolo :

[1] "The OpenCV Tutorials" release 2.4.3 [2] "Learning OpenCV" - Gary Bradski and Adrian Kaehler [3] "OpenCV una completa libreria open source per la computer vision" - Matteo Lucarelli

~ o ~ 


5. More generally

{Più in generale}


In this article we talked about OPENCV that is one of the most famous libraries dedicated to implementation of image processing algorithms.

   But if you want to examine the whole Image Processing technology from a more general point of view, then allow me to suggest you the reading of the following article which is the main one of the thematic area dedicated to this discipline, within Tateo~Encyclopedia (En).

  {In questo articolo abbiamo parlato di OPENCV che è una delle più famose librerie dedicate alla elaborazione degli algoritmi di elaborazione delle immagini. 

  Ma se vuoi esaminare l'intera tecnologia della Elaborazione delle Immagini, da un punto di vista più generale, allora permettimi di suggerirti la lettura del seguente articolo che è il principale dell'area tematica dedicata a questa disciplina, all'interno di Tateo~Encyclopedia (En)}


IMAGE PROCESSING
{La elaborazione delle immagini}


~ o ~ 


6. Stay up to date
{Rimani aggiornato}

If you are interested in the topics covered in the current article and want to be informed about my most recent updates dealing with them, then I invite you to register:


on the Facebook page
"Artificial Vision by Tateo-Blog" (>)

and at the Pinterest dashboard

"Artificial Vision by Tateo~Blog" (>)


which I dedicated specifically for sharing the most recent changes made to the corresponding thematic area of Tateo~Learning (>).

{Se sei interessato agli argomenti trattati nell'articolo corrente e vuoi essere informato sui miei aggiornamenti più recenti che trattano di essi, allora ti invito a registrarti:


alla pagina Facebook

"Artificial Vision by Tateo-Blog(>)


ed alla bacheca Pinterest

"Artificial Vision by Tateo~Blog" (>)


che ho dedicato appositamente per la condivisione delle modifiche più recenti apportate all'area tematica corrispondente di Tateo~Learning (>)}


~ o ~ 


7. Let's keep in touch

{Teniamoci in contatto}


I hope you enjoyed this article that belongs to the Learning (>) section of Tateo~Blog (>), and that the notes and observations I gathered within it have met your interest. If my work has stimulated your interest, I invite you to follow the last blog updates on the following social media pages:

{ Mi auguro che tu abbia apprezzato questo post che appartiene alla sezione Learning (>) di Tateo~Blog (>), e che le note e le osservazioni che ho raccolto al suo interno abbiano incontrato il tuo interesse. Se il mio elaborato ha stimolato il tuo interesse ti invito a seguire gli ultimi aggiornamenti del blog sulle seguenti pagine dei social media: }

Tateo~Blog 

     on LinkedIn (link)

     on Facebook (link)


~ o ~ 


7. Something about me, the founder and author of Tateo~Blog Project

{Qualcosa su di me, il fondatore e sull'autore del progetto Tateo~Blog}

First of all, thank you for visiting one of the pages of my blog. My name is Giovanni Battista Tateo (shortly Bat) and I am the founder and author of a project of Interdisciplinary Lifelong Learning of which the Tateo~Blog (:::) blog is the means of sharing. I was initially an Information Technology expert, and later I became an electronic engineer, specializing in industrial Automation. I'm passionate about Artificial intelligence, Virtual Reality, Simulation, and I'm an expert in Artificial Vision applied to industrial Automation. Currently, and starting four years ago, I am employed as a Proposal Engineer at Mer Mec S.p.A. (:::) company. Previously, starting in 2004, I was employed, always at the same company, as a Designer of Artificial Vision Systems and Image Processing Algorithms, applied in particular to Railway Diagnostics. I am a supporter and promoter of Lifelong Learning, Social Networking and Knowledge Sharing by means of the web. If you want more details about me, visit the About Me (:::) page.


{ Innanzitutto ti ringrazio per aver visitato una delle pagine del mio blog. Mi chiamo Giovanni Battista Tateo (brevemente Bat) e sono il fondatore e l'autore di un progetto Lifelong Learning Interdisciplinare di cui il blog Tateo~Blog (:::) ne è il mezzo di condivisione. Sono stato in principio un esperto di Informatica, e in seguito sono diventato un Ingegnere Elettronico, specializzato in Automazione Industriale. Sono un appassionato di Intelligenza Artificiale, Realtà Virtuale, Simulazione, e sono un esperto di Visione Artificiale applicata all'Automazione Industriale. Attualmente, ed a partire dall'anno 2016, sono impiegato come Proposal Engineer presso la società Mer Mec S.p.A. (:::). Precedentemente, a partire dal 2004, sono stato impiegato, sempre presso la stessa società, come Progettista di Sistemi di Visione Artificiale e di Algoritmi di Elaborazione delle Immagini, applicati in particolare alla Diagnostica Ferroviaria. Sono un sostenitore e promotore dell'apprendimento permanente, dei social network e della condivisione delle conoscenze tramite il web. Se vuoi ulteriori dettagli su di me, visita la pagine About Me (:::). }


Mine References

  Following you can find my personal references that you can use if you want to contact me directly, and the links to my social accounts that you can use to follow me or to keep in touch with me by means of social media networks.

  { In seguito puoi trovare i miei riferimenti personali che puoi utilizzare se vuoi contattarmi personalmente, ed i collegamenti ai miei account social che puoi utilizzare per seguirmi e rimanere in contatto con me tramite le reti di social media. }

Eng. Tateo Giovanni Battista

    - e-mail: tateogb@libero.it (send e-mail)

    - phone / WhatsApp : (+39) 388 8419726

    - Skype (link)

    - LinkedIn account (link)

    - Facebook account (link)

    - Twitter account (link)

    - Instagram account (link)

    - Pinterest account (link)



Tateo~Learning © August 29, 2021

Commenti