OpenCV (Open Source Computer Vision Library) je multiplatformová open-source knižnica, ktorá obsahuje algoritmy zamerané na počítačové videnie. Knižnica obsahuje viac ako 2500 optimalizovaných algoritmov. Obsahuje klasické ale aj najmodernejšie riešenia problémov z oblasti počítačového videnia a strojového učenia. Tieto algoritmy môžu byť použité na rozpoznanie tvárí, klasifikáciu ľudského správania a sledovanie pohybu vo videách, extrakciu 3D modelov objektov, spájanie obrázkov na tvorbu vysoko kvalitných obrazov celej scény, hľadanie podobných obrázkov v databáze, odstránenie efektu červených očí pri použití blesku, sledovanie pohybu očí a rozpoznanie scenérie atď. Knižnica je široko používaná vo výskumných skupinách, firmách a štátnych podnikoch. Počet stiahnutí tejto knižnice prekračuje 18 miliónov. OpenCV je napísaná v jazyku C++, ale je možné použiť ju aj v jazykoch Python, Java a MATLAB.

História Knižnica OpenCV bola vytvorená spoločnosťou Intel. Vývoj začal v 1998 a prvé verejné vydanie bolo v roku 2000. Intel ešte aj dnes podporuje ďalší vývoj tento knižnice.

v roku 2006 bola vydaná prvá oficiálna verzia OpenCV 1.0 – implementovaná bola v C a obsahovala rôzne algoritmy na spracovanie obrazu, výpočtovú geometriu, detekciu tvárí, kalibráciu kamery atď., a niektoré klasické metódy zo strojového učenia ako napr. rozhodovacie stromy, SVM, viacvrstvové perceptrony atď. v roku 2009 bola vydaná verzia OpenCV 2.0 – C++ sa stal hlavným hlavným jazykom knižnice.

Moduly OpenCV má modulárnu štruktúru čo znamená, že balíček obsahuje niekoľko zdieľaných alebo statických knižníc. Hlavné moduly sú:

Core functionality (core) – modul definujúci základné dátové štruktúry a funkcie, ktoré sú používané ostatnými modulmi. Image Processing (imgproc) – modul na spracovanie obrázkov. Obsahuje lineárne a nelineárne filtrovanie, geometrické transformácie, konverziu farebných priestorov, histogramy atď. Video Analysis (video) – modul na spracovanie videí, ktorý obsahuje algoritmy na odhad pohybu, extrakciu pozadia a sledovanie objektov. Camera Calibration and 3D Reconstruction (calib3d) – kalibrácia kamery, odhad polohy objektu, 3D rekonštrukcia. 2D Features Framework (features2d) – detektory charakteristických čŕt, deskriptory. Object Detection (objdetect) – detekcia objektov a instancie preddefinovaných tried (napr. tvár, oči, ľudia, autá…) High-level GUI (highgui) – ľahko použiteľné rozhranie na jednoduché UI funkcie. Video I/O (videoio) – ľahko použiteľné rozhranie na zaznamenávanie videa a video kodeky … a ďalšie

Programovací jazyk OpenCV je napísaný v C++, ale stále si zachováva menej komplexné, aj keď rozsiahle staršie rozhranie C. Všetky novinky a algoritmy sa objavujú v rozhraní C++. Väzby existujú v jazykoch Python (napríklad metódy OpenCV cv.line, OpenCV cv2.cvtcolor, OpenCV cv2.circle), Java a MATLAB/OCTAVE. Rozhranie API pre tieto rozhrania nájdete v online dokumentácii.OpenCV C interface: http://docs.opencv.org

Obaly v niekoľkých programovacích jazykoch boli vyvinuté s cieľom podporiť prijatie širším publikom. Vo verzii 3.4 boli väzby JavaScript pre vybranú podmnožinu funkcií OpenCV vydané ako OpenCV.js, ktoré sa majú použiť pre webové platformy.

Referencie

Iné projekty

Externé odkazy docs.opencv.org - dokumentácia

Kategória:Grafický softvér Kategória:Spracovanie obrazu Kategória:Grafické knižnice