OpenCV

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.

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

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

Grafický softvér
Spracovanie obrazu
Grafické knižnice