Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

OpenCV API

Прикладний програмний інтерфейс (англ. Application Programming Interface, API) — набір визначень взаємодії різнотипного програмного забезпечення. API — це зазвичай (але не обов'язково) метод абстракції між низькорівневим та високорівневим програмним забезпеченням.

Одним з найпоширеніших призначень API є надання набору широко використовуваних функцій, наприклад для малювання вікна чи іконок на екрані. Програмісти використовують переваги API у функціональності, таким чином їм не доводиться розробляти все з нуля. API є абстрактним
поняттям — програмне забезпечення, що пропонує деякий API, часто називають реалізацією даного API. У багатьох випадках API є частиною набору розробки програмного забезпечення, водночас, набір розробки може включати як API, так і інші інструменти/апаратне забезпечення, отже ці два терміни не є взаємозамінювані.

Високорівневі API часто програють y гнучкості. Виконання деяких функцій більш низького рівня стає набагато складнішим, або навіть неможливим.

 

Архітектура прикладного програмного інтерфейсу бібліотеки OpenCV налічує безліч модулів (сумарна кількість функцій перевищує 500), але основними модулями є наступні:

Сxcore – ядро ​​(містить базові структури даних і алгоритми):

- базові операції над багатовимірними числовими масивами;

- матрична алгебра, математичні функції, генератори випадкових чисел;

- запис/відновлення структур даних в або з XML;

- базові функції 2D графіки.

CV – модуль обробки зображень та комп'ютерного зору:

- базові операції над зображеннями (фільтрація, геометричні перетворення, перетворення колірних просторів і т. д.);

- аналіз зображень (вибір відмінних ознак, морфологія, пошук контурів, гістограми);

- аналіз руху, спостереження за об'єктами;

- виявлення об'єктів, зокрема осіб;

- калібрування камер, елементи відновлення просторової структури.

Highgui – модуль для вводу/виводу зображень і відео, створення користувальницького інтерфейсу:

- захоплення відео з камер і з відео файлів, читання/запис статичних зображень;

- функції для організації простого користувацького інтерфейсу (усі демонстраційні додатки використовують HighGUI).

Cvaux – експериментальні та застарілі функції:

- просторовий зір: стерео-калібрація, само-калібрація;

- пошук стерео-відповідності;

- знаходження та опис рис обличчя.

CvCam – захоплення відео:

- дозволяє здійснювати захоплення відео з цифрових відеокамер (підтримка припинена і в останніх версіях цей модуль відсутій).

Imgproc – обробка зображень (фільтрація, геометричні перетворення, перетворення колірних просторів і т. д.).

Ml – статистичні моделі машинного навчання (SVM, дерева рішень, навчання зі стимулюванням і т. д.).

Features2D – розпізнавання і опис плоских примітивів (SURF, FAST і інші, включаючи спеціалізований фреймворк).

Video – аналіз руху і відстеження об'єктів (оптичний потік, шаблони руху, усунення фону).

ObjDetect – виявлення об'єктів на зображенні (перебування осіб за допомогою алгоритму Віоли-Джонса (англ.), розпізнавання людей HOG і т. д.).

Calib3D – калібрування камери, пошук відповідностей і елементів обробки тривимірних даних.

Flann – бібліотека швидкого пошуку найближчих сусідів (FLANN 1.5).

Contrib – супутній код, ще не готовий для застосування.

Legacy – застарілий код, збережений заради зворотної сумісності.

GPU – прискорення деяких функцій OpenCV за рахунок CUDA, створений за підтримки NVidia.

 

Базова архітектура бібліотеки OpenCV зображена на рис. 3.1.

 

Рисунок 3.1 – Базова архітектура бібліотеки OpenCV

 

 

У новій версії OpenCV 2.2 бібліотека була реорганізована і розбита на безліч маленьких, розділених за функціональним призначенням блоків. За рахунок цього поліпшення архітектури в ході виконання роботи було створено наступні програмні модулі, які вдалося повноцінно інтегрувати з основною бібліотекою:

1) Підсистема для побудови монохромної моделі об’єкту.

2) Підсистема ідентифікації об’єктів за кольором.

3) Підсистеми для побудови загального та динамічного контурів об’єктів.

4) Драйвер операційної системи для керування курсором маніпулятора на основі даних представлених системою стеження.


Дата добавления: 2015-10-21; просмотров: 223 | Нарушение авторских прав


Читайте в этой же книге: Аналіз проблеми та постановка задачі | Аналіз проблемної області | Відновлення зображень | Алгоритм роботи програми | Оцінка достовірності роботи системи |
<== предыдущая страница | следующая страница ==>
Аналіз існуючих рішень| EmguCV API

mybiblioteka.su - 2015-2024 год. (0.008 сек.)