3 сірим кольором виділені пікселі, в яких вважається яскравість.
Малюнок 3 - Розглянуті пікселі.
3. Наступна оптимізація полягає в обмеженні території пошуку, на зображенні веб-камери, ліворуч праворуч і знизу. На малюнку 4 видно, що при відстані з веб-камери до монітора 1 метр, монітор розмірами менше чверті зображення. ІЧ-діод встановлюється над монітором посередині. Центр зображення веб-камери - приціл. Наведемо приціл в лівий верхній кут монітора і побачимо крайнє положення діода праворуч. Виходячи з усього цього, можна обмежити пошук, як показано на малюнку 5. Таким чином, розглядалося пікселів на зображенні в 2 рази менше по висоті і в 2 рази менше по ширині.
Малюнок 4 - Зображення з веб-камери.
Малюнок 5 - Обмеження розглянутих пікселів.
Після оптимізацій, розглядаємо замість 307200 пікселів, 307200/2/2/4=19200 пікселів, що в 16 разів менше. А враховуючи перший оптимізацію з прапором, то не завжди розглядається все 19200 пікселів, а число від 1 до 19 200 пікселів. Число пікселів залежить від місця розташування світлового плями на зображення. Чим ближче до верхнього лівого кута, тим менше треба розглядати пікселів.
Тепер розглянемо світлову пляму, і обчислимо координати центру цієї плями. Алгоритм полягає в наступному - після того як програма знайшла координати світлого пікселя, вона починає розглядати область навколо нього (10 пікселів в кожну сторону), знаходить координати в цій області самого верхнього, лівого, правого і нижнього яскравого пікселя, і запам'ятовує їх. Після, шукає середнє арифметичне по горизонталі і вертикалі, і приймає ці значення за координати центру світлової плями. На малюнку 6 приклад.
Малюнок 6 - Світлове пляма.
На малюнку 7 і малюнку 8 наведена блок схема алгоритму знаходження координат світлової плями.
Малюнок 7 - Алгоритм знаходження координат світлової плями частина 1.
Рисунок 8 - Алгоритм знаходження координат світлової плями частина 2.
У підсумку розглядається від 401 до 19600 пікселів. З таким завданням будь-який сучасний комп'ютер справиться.
. 4 Реалізація спускового гачка
Для реалізації спускового гачка вирішено було взяти за основу мікрофон (usb або 3,5мм jack). Сенс у тому, що сам мікрофон Відпаюю, а замість нього припаюється кнопка, при натисканні на яку, замикалося 2 дроти, тим самим створюючи сплеск звуку, який якраз будемо відловлювати на комп'ютері і вважати це за постріл.
Рівень звуку ми вимірюємо за допомогою компонента ALVU meter (вимірювач рівня звуку) з бібліотеки AudioLab 5.0.1 [13]. Після натискання на кнопку (спусковий гачок), програма бачить, що змінився рівень звуку вище, ніж на 40dB, і реєструє координати точки влучення з програванням звуку пострілу. На малюнку 9 видно, як змінюється рівень звуку після натискання на спусковий гачок.
Рисунок 9 - Графік рівня звуку в часі.
. 5 Створення пристрілки для налаштування тренажера
Пристрелка проводиться на відстані від 0,8 м до 5 м. Налаштування складається з 6 пострілів (3 постріли в кожну мішень). Мішені знаходяться по кутах. Мішені розставляються, як показано на малюнку 10.
Рисунок 10 - Пристрелка імітатора зброї.
Після того, як зроблено 6 пострілів, йде розрахунок ширини і висоти монітора на зображенні з веб-камери. При пострілах запам'ятовуються координати ІЧ-діода.
Розрахунок:
Шукаємо середнє арифметичне кожної точки:
,,
Після шукаємо відстань між мішенями:
Далі, знаючи, як розставлені мішені (рис.6), можна порахувати ширину і висоту і монітора:
Також треба знайти відстань від ІЧ-діода до верхньої грані монітора і відстань від ІЧ-діода до лівій грані монітора. Це відстань придасться для розрахунку точки прицілювання. На малюнку 11 видно, що потрібно знайти і що відомо.
Малюнок 11 - Схема зображення з веб-камери.
Складемо формули:
4.6 Лінійна апроксимація і знаходження координат точки прицілювання
Проведемо лінійну апроксимацію:
X1, Y1, X2, Y2 - координати точок на екрані по діагоналі. 1, Y 1, X 2, Y 2 - координати ІЧ-діода, коли целімся в ці точки. На малюнку 12 координати проілюстров...