You are on page 1of 8

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ БІОРЕСУРСІВ І

ПРИРОДОКОРИСТУВАННЯ УКРАЇНИ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра комп’ютерних наук

ЛАБОРАТОРНА РОБОТА №1

на тему: «Розпізнавання образів на основі методу порівняння з


еталоном»

Виконала:

студентка групи КН-18002б

Граудул Олександра

Перевірив:

доктор технічних наук, професор,

Бондаренко Віктор Євгенович

КИЇВ - 2021
Зміст

Вступ.............................................................................................................................3

Розділ 1. Методи розпізнавання образів....................................................................3

Розділ 2. Програмна реалізація системи розпізнавання образів..............................4

Розділ 3. Дослідження системи розпізнавання образів............................................7

Висновки.......................................................................................................................8

Література.....................................................................................................................8

2
Вступ
Метою даної роботи є вивчення способів класифікації образів на основі методу
порівняння з еталоном, розробка програмної системи, що реалізує
розпізнавання образів на основі зазначеного методу, а також дослідження
розробленої системи.
Вихідні дані:
 кількість класів, об’єктів та їх показників для навчання системи
розпізнавання
 самі об’єкти для навчання
 довільні об’єкти для класифікації.

Розділ 1. Методи розпізнавання образів


Метою роботи є вивчення способів класифікації образів на основі методу
порівняння з еталоном та розробка відповідної програмної системи.
У класичному підході розпізнавання образів невідомий об'єкт для класифікації
представляється у вигляді вектору елементарних показників. Система
розпізнавання на основі ознак може бути розроблена різними способами. Ці
вектори можуть бути відомі системі заздалегідь в результаті навчання або
передбачені в режимі реального часу на основі будь-яких моделей.
Простий алгоритм класифікації полягає в угрупованні еталонних даних класу з
використанням вектору математичного очікування класу (середнього значення).
Нехай образи еталони, необхідні для навчання системи розпізнавання задаються
векторами ознак. Необхідно обчислити середнє значення за кожною ознакою
для кожного класу.
Тоді невідомий об'єкт буде відноситися до класу i, якщо він істотно ближче до
вектору математичного очікування класу i, ніж до векторів математичних
очікувань інших класів.
Розроблена програма дозволяє виконувати класифікацію n довільних образів по
m показниками. Кількість образів n, кількість показників m, а також вихідні дані
по образам для розпізнавання вводяться з клавіатури і класифікуються на k
класів. Кількість навчальних об'єктів для кожного класу (ni, i = 1,2, ..., k)
довільне і вводиться з клавіатури.

3
Розділ 2. Програмна реалізація системи розпізнавання образів
Програма написана на алгоритмічній мові С ++.
Лістинг програми:
#include <iostream>
#include <cmath>
#include <conio.h>

using namespace std;

int main()
{
int num_arr; //кількість класів
int num_pok; //кількість показників
int num_ekz; //кількість екземплярів
char quite;

cout << "Вкажіть кількість класів для навчання" << endl;


cin >> num_arr;
cout << "Вкажіть кількість показників" << endl;
cin >> num_pok;
cout << "Вкажіть кількість екземплярів кожного класу" << endl;
cin >> num_ekz;

// створення масиву для кожного класу екземплярів


int*** array = new int** [num_arr]; // кількість класів
for (int i = 0; i < num_arr; i++) {
array[i] = new int* [num_pok]; // кількість показників
for (int j = 0; j < num_pok; j++) {
array[i][j] = new int[num_ekz]; // кількість екземплярів
}
}

//введення значень показників для кожного екземпляру


int a;
for (int i = 0; i < num_arr; i++) {
cout << "\nВведення даних для класу " << i + 1 << endl;
for (int k = 0; k < num_pok; k++) {
cout << "Показник " << k + 1 << endl;
for (int j = 0; j < num_ekz; j++) {
cout << "Екземпляр " << j + 1 << ": ";

4
cin >> a;
array[i][k][j] = a;
}
}
cout << endl;
}

//пошук середнього значення для кожного показника кожного класу


//створюємо масив для зберігання середніх знач показників
float** mid = new float* [num_arr];
for (int i = 0; i < num_arr; i++)
mid[i] = new float[num_pok];
a = 0;
cout << "Визначення середніх значень" << endl;
for (int i = 0; i < num_arr; i++) {
cout << "Клас " << i + 1 << endl;
for (int k = 0; k < num_pok; k++) {
cout << "Показник " << k + 1 << ": сер.значення = ";
for (int j = 0; j < num_ekz; j++) {

a += array[i][k][j];
}
a /= num_ekz;
mid[i][k] = 1.0*a;
cout << a << endl;
a = 0;
cout << endl;
}
cout << endl;
}

int count;
int min;
int min_i;
//введення і порівняння значень з еталоном
count = 1;
do {
cout << "\nВведіть екземпляр для порівняння з еталоном" << endl;
int* pok = new int[num_pok];
int* poriv = new int[num_arr];

cout << "Екземпляр " << count << endl;


for (int j = 0; j < num_pok; j++) {
cout << "Показник " << j + 1 << ": ";
cin >> pok[j];
}

5
// порівняння з еталоном
for (int i = 0; i < num_arr; i++) {
for (int k = 0; k < num_pok; k++) {
poriv[i] += pow((mid[i][k] - pok[k]), 2);
}
poriv[i] = pow(poriv[i], 0.5);
}

min = poriv[0];
min_i = 0;
for (int i = 0; i < num_arr; i++) {
if (poriv[i] < min) {
min = poriv[i];
min_i = i;
}
}

cout << "\nДаний екземпляр відноситься до класу " << min_i + 1 <<
endl;
count++;
cout << "\nДля завершення натисність 1"<< endl;
cin >> quite;

} while (quite != '1');

return 0;
}

6
Розділ 3. Дослідження системи розпізнавання образів
Скріншоти роботи програми:

7
Висновки
У результаті було розроблено програмну систему, що реалізує розпізнавання
образів на основі методу порівняння з еталоном. Було досліджено роботу
розробленої системи шляхом введення навчальних об’єктів, які відрізняються за
двома показниками. Дані об’єкти були класифіковані на 2 класи. А потім було
успішно класифіковано декілька довільних образів.
Також було отримано практичні навички з розробки програмних систем
розпізнавання образів.

Література
1. Бондаренко В.Є. Практикум Теорія Розпізнавання образів. - К.: 2020 - 5-8с.
2. Дуда Р., Харт П. Распознавание образов и анализ сцен. Перевод с английского
Г. Г. Вайештейнв и А. М. Васьковского, под редакцией В. Л. Стефанюка,
Издательство «МИР», - М.: 1976. - 509 с.

You might also like