нений деталями необхідними для його практичного використання.
В якості технічного засобу була використана веб-камера Ritmix RVC - 006M з матрицею 0,3 мегапікселів, дозволом відео 640 * 480, підключена через USB 2.0. А в якості середовища розробки було обрано середовище Visual Studio 2010, а в якості мови програмування - C + +. такий вибір зумовлений тим, що на цій мові написана потужна професійна бібліотека для реалізації завдань комп'ютерного зору OpenCV. Також для здійснення захоплення відео була використана бібліотека videoInput. - Бібліотека комп'ютерного зору з відкритим вихідним кодом (Open Source Computer Vision Library), що містить більше 500 функцій. До першої версії розробкою займалася російська команда Intel в Нижньому Новгороді. Бібліотека містить алгоритми для обробки, реконструкції та очищення зображень, розпізнання образів, захоплення відео, стеження за об'єктами, калібрування камер та ін [2].
Спочатку перед OpenCV ставилися наступні цілі дослідження машинного зору, розробки та оптимізації коду. Поширення інформації по машинному зору, розробка загальної інфраструктури на якій могли б грунтуватися розробники, код повинен бути удобочитаем і передаваем.
Додатки повинні бути переносимими, оптимізованими, код яких не обов'язково повинен бути відкритим. Додатки також можуть створюватися в комерційних цілях. OpenCV підтримує компілятори Visual C + +, Borland C + +, Intel Compiler, MinGW, GCC, Intel Compiler, Carbon. На початку ми підключаємося до web камері за допомогою бібліотеки VideoInput і робимо знімок QR коду і далі починаємо обробку знімка (малюнок 5). Перетворимо отримане зображення в градації сірого, робимо зображення двійковим за допомогою порогового перетворення. Всім пикселям, значення яких менше порога, присвоюємо значення 255 - білий колір, всім пікселям, значення яких вище порога присвоюємо 0 - чорний колір. Для отримання коректного результату потрібно, щоб знімок був досить контрастним. Таким чином, ми отримуємо чорно-біле зображення.
Далі знаходимо всі контури, які присутні на чорно-білій картинці. Тепер серед знайдених контурів нам необхідно знайти 3 мішені. Мішень - область QR коду утворена трьома вкладеними квадратами з відношенням сторін 7:5:3 (малюнок 2).
Малюнок 2 - Мішень QR коду
Вважаємо мішенню квадрат, що має всередині себе два вкладених квадрата (рисунок 3).
Рисунок 3 - Зображення із знайденими мішенями
Для того щоб знайти мішені, потрібно спочатку відшукати серед контурів всі квадрати, і потім для кожного квадрата перевірити: чи є в ньому 2 вкладених квадрата.
У циклі обходимо всі контури і шукаємо квадрати. Щоб визначити, що контур є квадратом, використовуємо два критерії пошуку: 1) ми знайдемо розміри мінімального прямокутника, що охоплює поточний контур і, перемноживши розміри, отримаємо площа цього прямокутника. Напряму з допомогою спеціальної функції OpenCV знайдемо площа контура. Якщо площі контуру і прямокутника, що обмежує контур, приблизно збігаються, то можна вважати цей контур прямокутником;
) порівнюємо висоту і ширину прямокутника, що обмежує контур. Якщо вони приблизно рівні, то вважаємо це прямокутник квадратом.
Виявляємо на малюнку по цих двох критерієм д...