браження ноти: 1 - прапорець, 2 - штиль, 3 - головка
Визначення відбувається наступним чином. Спочатку визначаємо, зафарбована чи нота. Для цього проходимо по нотного стану зліва направо і знаходимо скупчення пікселів, які й будуть нотами. Далі визначаємо початок такого блоку пікселів. Потім знаходимо центр блоку і визначаємо значення яскравості центрального пікселя. Якщо в центрі ноти знаходяться білі пікселі, то дана нота є цілою або половинній.
Далі визначаємо, чи є у даної ноти штиль. Щоб визначити штиль, що йде вгору, знаходимо праву межу блоку пікселів (ноти) і дивимося, чи є вище чорні пікселі. Щоб визначити штиль, що йде вниз, з початку блоку пікселів рухаємося вниз. Якщо на шляху зустрінуться чорні пікселі, значить, у даній ноти є штиль. Якщо у ноти є штиль, то вона є половинній. Якщо штилю немає - нота ціла.
.3 Розпізнавання з навчанням. Метод еталонів
Розпізнавання незакрашенних нот в даному проекті здійснюється за допомогою методу еталонів. Суть цього методу полягає в наступному.
Для кожного класу, що складається з 3 нот, за навчальною вибіркою будується еталон, який має такі значення ознак:
де - значення i-го ознаки у еталона, кількість об'єктів даного образу в навчальній вибірці.
Розпізнавання здійснюється наступним чином. На вхід системи надходить об'єкт, належність якого до того чи іншого образу системі невідома. Від цього об'єкта вимірюються відстані до еталонів всіх образів, і система відносить об'єкт до того образу, відстань до еталона якого мінімально.
Для знаходження мінімальної відстані використовується Евклідова відстань.
За визначенням Евклидова відстані квадрат відстані між двома точками x і y в просторі D дорівнює
x, y)=
4. ПРОГРАМНА РЕАЛІЗАЦІЯ
.1 Схема програмного забезпечення
Додаток являє собою проект з ім'ям ПОІ_курс.sln. На малюнку 4.1.1 представлений список файлів проекту.
Опис файлів, що входять в проект, представлено нижче:
· MainForm.cs - модуль, в якому містяться методи для відкриття та розпізнавання зображення;
· PlayNote.cs - модуль, що містить методи для програвання розпізнаних нот.
На малюнках 4.1.2 - 4.1.3 зображена IDEF0-діаграма додатки, спроектована в середовищі BPwin.
Малюнок 4.1.1 - Структура проекту
Малюнок 4.1.2 - контекстна діаграма процесу «Розпізнавання музичних нот»
Малюнок 4.1.3 - декомпозиція контекстної діаграми
Малюнок 4.1.4 - декомпозиція процесу «Розпізнавання зображення»
.2 Опис класів, функцій, методів
У ході роботи були реалізовані наступні класи і методи:
- class MainFrom - клас, що містить методи для підготовки зображення до розпізнавання і обробний роботу форми і натиснення кнопок
- class PlayNote - клас, що містить метод, для відтворення нот.
У класі MainFrom розроблені наступні методи:
· public double getAngle -...