OpenCV
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 15 mai 2018; verificările necesită
19 modificări .
OpenCV ( Eng. Open Source Computer Vision Library , biblioteca open source computer vision) este o bibliotecă de algoritmi de viziune computerizată , procesare a imaginilor și algoritmi numerici de uz general cu sursă deschisă . Implementat în C / C++ , fiind dezvoltat și pentru Python , Java , Ruby , Matlab , Lua și alte limbaje [2] . Utilizare gratuită în scopuri academice și comerciale - distribuit în condițiile licenței BSD .
A doua actualizare majoră a OpenCV a fost lansată în octombrie 2009. OpenCV 2 include modificări majore la interfața C++ pentru a simplifica, îmbunătăți securitatea, introduce noi caracteristici și crește performanța (în special pentru sistemele multi-core). Lansările oficiale sunt acum lansate la fiecare șase luni [3] și dezvoltarea este realizată de o echipă rusă independentă, cu sprijinul corporațiilor comerciale. [4] În mai 2016, Intel a semnat un acord pentru achiziționarea Itseez [5] , dezvoltatorul principal al OpenCV. [6]
Aplicație
- Să aprobe o interfață standard comună de viziune computerizată pentru aplicațiile din acest domeniu. Pentru a promova creșterea unor astfel de aplicații și a crea noi modele de utilizare a computerului.
- Faceți platformele Intel atractive pentru dezvoltatorii de astfel de aplicații, accelerând în continuare OpenCV cu Intel® Performance Libraries (acum include IPP (biblioteci de nivel scăzut pentru procesarea semnalului, procesarea imaginilor și codecuri media) și MKL (versiunea specială a LAPACK și FFTPack )). OpenCV este capabil să detecteze automat prezența IPP-urilor și a MKL - urilor și să le folosească pentru a accelera procesarea.
Platforme și instrumente acceptate
Bibliotecile în sine:
- Microsoft Windows : compilatoare Microsoft Visual C++ (6.0, .NET 2003), Intel Compiler, Borland C++, Mingw ( GCC 3.x).
- Windows RT : Portat la ARM de către Itseez [7] .
- Linux : GCC (2.9x, 3.x), Intel Compiler: „./configure-make-make install”, RPM (fișier cu specificații inclus).
- Mac OS X : GCC (3.x, 4.x).
- android .
- iOS .
- Se folosesc C și C++ „ușor”. Pragmele și compilarea condiționată sunt folosite foarte limitat.
Instrumente GUI , captură video:
Documentație: HTML static , PDF .
Modulele principale
În versiunea 2.2 biblioteca a fost reorganizată. În locul modulelor universale cxcore, cvaux, highGUI și altele, au fost create mai multe module compacte cu o specializare mai restrânsă:
- opencv_core - funcționalitate de bază. Include structuri de bază, calcule (funcții matematice, generatoare de numere aleatoare) și algebră liniară, DFT , DCT , I/O pentru XML și YAML etc.
- opencv_imgproc - procesarea imaginilor (filtrare, transformări geometrice, conversie a spațiului de culoare etc.).
- opencv_highgui - interfață simplă de utilizare, intrare/ieșire pentru imagini și video.
- opencv_ml - Modele de învățare automată (SVM-uri, arbori de decizie, învățare stimulată etc.).
- opencv_features2d - recunoașterea și descrierea primitivelor plate ( SURF, FAST și altele, inclusiv un cadru specializat).
- opencv_video - analiza mișcării și urmărirea obiectelor ( flux optic , modele de mișcare, eliminarea fundalului).
- opencv_objdetect - detectarea obiectelor din imagine (detecția feței folosind algoritmul Viola-Jones , recunoașterea oamenilor HOG etc.).
- opencv_calib3d - Calibrarea camerei, căutarea potrivirii stereo și elementele de procesare a datelor 3D.
- opencv_flann - biblioteca rapidă a vecinilor apropiati (FLANN 1.5) și înveliș OpenCV.
- opencv_contrib - cod însoțitor, care nu este încă gata de utilizare.
- opencv_legacy este cod moștenit, păstrat pentru compatibilitate cu versiunea anterioară.
- opencv_gpu - accelerarea unor funcții OpenCV datorită CUDA , creată cu suportul NVidia .
Limbajul de programare
OpenCV este scris în C++ ca interfața sa principală, dar cu utilizarea parțială a interfeței C. Toate noile dezvoltări și algoritmi apar în interfața C++. Sunt acceptate Python , Java și MATLAB / OCTAVE (de exemplu, metodele OpenCV cv.line [8] , OpenCV cv2.cvtcolor [9] , OpenCV cv2.circle [10] ). API-ul pentru aceste interfețe poate fi găsit în documentația online [11] .
Note
- ↑ Lansări . Preluat la 20 septembrie 2019. Arhivat din original la 29 august 2019. (nedefinit)
- ↑ Bradsky G., Kaehler A. Learning OpenCV Arhivat 28 decembrie 2008 la Wayback Machine - O'Reilly, 2008. - C. 1 - ISBN 978-0-596-51613-0
- ↑ Jurnalele de modificări OpenCV: http://code.opencv.org/projects/opencv/wiki/ChangeLog Arhivat din original pe 15 ianuarie 2013.
- ↑ Site pentru dezvoltatori OpenCV: http://code.opencv.org Arhivat 13 ianuarie 2013.
- ↑ Intel achizitioneaza Computer Vision pentru IOT, Automotive ? . Sala de știri Intel . Preluat: 19 august 2022. (nedefinit)
- ↑ East-West Digital News. Intel achizitioneaza compania ruseasca de computer vision Itseez ? (31 mai 2016). Preluat: 19 august 2022. (nedefinit)
- ↑ Itseez Blog Cum am portat OpenCV pe WindowsRT Arhivat 8 februarie 2014.
- ↑ OpenCV cv.line (11 octombrie 2021). Preluat la 12 octombrie 2021. Arhivat din original la 27 octombrie 2021. (nedefinit)
- ↑ OpenCV cv2.cvtcolor (11 octombrie 2021). Preluat la 12 octombrie 2021. Arhivat din original la 27 octombrie 2021. (nedefinit)
- ↑ OpenCV cv2.circle (11 octombrie 2021). Preluat la 12 octombrie 2021. Arhivat din original la 27 octombrie 2021. (nedefinit)
- ↑ Module OpenCV (11 octombrie 2021). Preluat la 12 octombrie 2021. Arhivat din original la 19 octombrie 2021. (nedefinit)
Literatură
- Kaler A., Bradsky G. Learning OpenCV 3 = Learning OpenCV 3. - M. : DMK-Press, 2017. - 826 p. - ISBN 978-5-97060-471-7 .
- Bueno, Suarez, Espinosa. Procesarea imaginii cu OpenCV = Învățarea procesării imaginii cu OpenCV. - M. : DMK-Press, 2016. - 210 p. - ISBN 978-5-97060-387-1 .
- Prokhorenok N. OpenCV și Java. Procesarea imaginilor și viziunea computerizată. - Sankt Petersburg. : BHV-Petersburg , 2018. - 320 p. — ISBN 978-5-9775-3955-5 .
Link -uri