Professional Documents
Culture Documents
Граудул лаб2
Граудул лаб2
ПРИРОДОКОРИСТУВАННЯ УКРАЇНИ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра комп’ютерних наук
ЛАБОРАТОРНА РОБОТА №2
Виконала:
Граудул Олександра
Перевірив:
КИЇВ - 2021
Зміст
Вступ.............................................................................................................................3
Висновки.......................................................................................................................9
Література.....................................................................................................................9
2
Вступ
Метою даної роботи є вивчення способів класифікації образів на основі методу
потенційних функцій, розробка програмної системи, що реалізує розпізнавання
образів на основі зазначеного методу, а також дослідження розробленої
системи.
Вихідні дані:
кількість класів, об’єктів та їх показників для навчання системи
розпізнавання
самі об’єкти для навчання
довільні об’єкти для класифікації.
3
де а = 0,01; f0 = 1; r - відстань об'єкту до еталонного (середнього) об'єкта класу.
rÙ1, rÙ2 - відстань від об'єкта до еталонного об'єкта класу Ù1, Ù2.
fÙ1, fÙ2 - потенційні функції для класів Ù1, Ù2.
Лістинг програми:
#include <iostream>
#include <cmath>
#include <conio.h>
int main()
{
4
for(int k=0; k<num_pok; k++) {
cout<<"Показник "<<k+1<< endl;
for(int j=0; j<num_ekz; j++) {
cout<<"Екземпляр "<<j+1<<": ";
cin >> a;
array[i][k][j] = a;
}
}
cout<<endl;
}
a += array[i][k][j];
}
a /= num_ekz;
mid[i][k] = a;
cout << a << endl;
a = 0;
cout << endl;
}
}
int count;
double max;
int max_i;
//введення і порівняння значень з еталоном
count = 1;
do {
cout << "\n\nВведіть екземпляр для порівняння з еталоном"<<endl;
int *pok = new int[num_pok];
double *poriv = new double[num_arr];
double *f = new double[num_arr]; //масив для потенційної ф-ії
5
for(int j=0; j<num_pok; j++) {
cout<<"Показник "<<j+1<<": ";
cin >> pok[j];
}
// порівняння з еталоном
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);
// потенційна ф-ія f=f0/(1+(ar)^2), де а=0,01; f0=1; r –
відстань об’єкта до еталонного (середнього) об’єкта класу
f[i] = pow((1+pow((0.01*poriv[i]),2)),-1); // використання
потенційної ф-ії
cout <<"Потенційна ф-ія для класу "<<i+1<<": "<<f[i]<<endl;
}
max = f[0];
max_i = 0;
for(int i=0; i<num_arr; i++) {
if(f[i]>max) {
max = f[i];
max_i = i;
}
}
return 0;
}
6
Розділ 3. Дослідження системи розпізнавання образів
Скріншоти роботи програми:
7
8
9
Висновки
У результаті було розроблено програмну систему, що реалізує розпізнавання
образів на основі методу потенційних функцій. Було досліджено роботу
розробленої системи шляхом введення навчальних об’єктів, які відрізняються за
двома показниками. Дані об’єкти були класифіковані на 2 класи. А потім було
успішно класифіковано декілька довільних образів за допомогою порівняння
потенціалів.
Також було отримано практичні навички з розробки програмних систем
розпізнавання образів.
Література
1. Бондаренко В.Є. Практикум Теорія Розпізнавання образів. - К.: 2020 - 10-
12с.
2. Дуда Р., Харт П. Распознавание образов и анализ сцен. Перевод с английского
Г. Г. Вайештейнв и А. М. Васьковского, под редакцией В. Л. Стефанюка,
Издательство «МИР», - М.: 1976. - 509 с.
10