OpenCV
OpenCV è stato avviato da Intel nel 1999 da Gary Bradsky e la prima versione è uscita nel 2000. Vadim Pisarevsky si è unito a Gary Bradsky per gestire il team di software russo OpenCV di Intel. Nel 2005, OpenCV è stato utilizzato su Stanley, il veicolo che ha vinto il DARPA Grand Challenge 2005. Successivamente, il suo sviluppo attivo è continuato sotto il supporto di Willow Garage con Gary Bradsky e Vadim Pisarevsky a capo del progetto. OpenCV ora supporta una moltitudine di algoritmi relativi alla visione artificiale e all’apprendimento automatico e si sta espandendo giorno dopo giorno.
OpenCV supporta un’ampia varietà di linguaggi di programmazione come C++, Python, Java,ecc., ed è disponibile su diverse piattaforme tra cui Windows, Linux, OS X, Android e iOS. Anche le interfacce per le operazioni GPU ad alta velocità basate su CUDA e OpenCL sono in fase di sviluppo attivo.
OpenCV-Python è l’API Python per OpenCV, che combina le migliori qualità dell’API OpenCV C++ e del linguaggio Python.
OpenCV-Python
OpenCV-Python è una libreria di binding Python progettata per risolvere problemi di visione artificiale.
Python è un linguaggio di programmazione general purpose iniziato da Guido van Rossum che è diventato molto popolare molto rapidamente, soprattutto a causa della sua semplicità e leggibilità del codice. Consente al programmatore di esprimere idee in meno righe di codice senza ridurre la leggibilità.
Rispetto a linguaggi come C / C++, Python è più lento. Detto questo, Python può essere facilmente esteso con C / C++, che ci permette di scrivere codice computazionalmente intensivo in C/C++ e creare wrapper Python che possono essere utilizzati come moduli Python. Questo ci dà due vantaggi: in primo luogo, il codice è veloce come il codice C/C++ originale (poiché è il codice C++ effettivo che funziona in background) e in secondo luogo, è più facile codificare in Python rispetto a C/C++. OpenCV-Python è un wrapper Python per l’implementazione originale di OpenCV C++.
OpenCV-Python fa uso di Numpy, che è una libreria altamente ottimizzata per operazioni numeriche con una sintassi in stile MATLAB. Tutte le strutture di array OpenCV vengono convertite in e da array Numpy. Ciò rende anche più facile l’integrazione con altre librerie che utilizzano Numpy come SciPy e Matplotlib.
OpenCV-Python Tutorials
OpenCV introduce una nuova serie di tutorials che ti guideranno attraverso varie funzioni disponibili in OpenCV-Python. Questa guida si concentra principalmente su OpenCV 3.versione x (anche se la maggior parte dei tutorial funzionerà anche con OpenCV 2.X).
Si consiglia la conoscenza preliminare di Python e Numpy in quanto non saranno trattati in questa guida. La competenza con Numpy è un must per scrivere codice ottimizzato usando OpenCV-Python.
Questo tutorial è stato originariamente avviato da Abid Rahman K. come parte del programma Google Summer of Code 2013 sotto la guida di Alexander Mordvintsev.
OpenCV ha bisogno di te !!!
Poiché OpenCV è un’iniziativa open source, tutti sono invitati a dare contributi alla libreria, alla documentazione e ai tutorial. Se trovi qualche errore in questo tutorial (da un piccolo errore di ortografia a un erroregregegio nel codice o nel concetto), sentiti libero di correggerlo clonando OpenCV in GitHub e inviando una richiesta pull. Gli sviluppatori di OpenCV controlleranno la tua richiesta di pull, ti daranno un feedback importante e (una volta passata l’approvazione del revisore) verrà fusa in OpenCV. Diventerai quindi un contributore open source: -)
Man mano che nuovi moduli vengono aggiunti a OpenCV-Python, questo tutorial dovrà essere espanso. Se si ha familiarità con un particolare algoritmo e si può scrivere un tutorial che include la teoria di base dell’algoritmo e il codice che mostra l’uso di esempio, si prega di farlo.
Ricorda, insieme possiamo rendere questo progetto un grande successo !!!
Contributori
Di seguito è riportato l’elenco dei contributori che hanno inviato tutorial a OpenCV-Python.
- Alexander Mordvintsev (GSoC-2013 mentore)
- Abid Rahman K. (GSoC-2013 stagista)