Схема подпрограммы OnBnClickedCompare
Рис. 2.7
Подпрограмма Convert предназначена для реализации алгоритма преобразования отпечатка из абсолютных параметров к относительным. Подпрограмма сравнивает каждую точку на входном отпечатке со всеми остальными точками на отпечатке. Результат преобразования возвращается как выходной параметр функции.
Текст подпрограммы приведен в разделе П.1.2
Подпрограмма Convert предназначена для
1) преобразовать отпечаток из абсолютных параметров к относительным;
2) отсортировать список относительных параметров, для увеличения скорости распознавания.
Структура TRelFing предназначена для хранения информации о отпечатках пальцев в относительных параметрах. Структура TRelFing объявлена следующим образом:
classTRelFing: publiclist<listTRelDot>
typedef list<TRelDot> listTRelDot;
class TRelDot
{
public:
short l,a1,a2;
TAbsDot absDot;
}
l - растояние между точками
a1 - угол между направлением точки А и направлением A->B
a2 - угол между направлением точки В и направлением A
absDot - абсолютные параметры (необходимо для отображения на экране совпавших точек)
TAbsFing fing – список точек в абсолютных параметрах, полученый в разультате работы подсистемы анализа. Каждый элемент списка содержит все наобходимые параметры для обработки и преобразования в подсистеме распознавания:
class TAbsFing: public list<TAbsDot>
class TAbsDot
{
public:
CPoint coord;
double alpha;
bool type;
bool show;
};
coord - координаты
alpha - направление в точке
type - тип точки (1- окончание, 0- раздвоение)
show - видимость точки (1- видима, 0- скрыта)
Входные данные для данной подпрограммы представлены
TAbsFing &fng – ссылка на список точек отпечатка пальца в абсолютных параметрах.
Выходные данные для данной подпрограммы представлены:
TRelFing *–указатель на список точек отпечатка пальца в относительных параметрах.
В подпрограмме используются следующие подпрограммы:
1) GetAlpha – получение направления из точки А в точку В [-pi,pi);
2) GetS– получение расстояния между двумя точками.
Схема подпрограммы «Convert» приведена на рис. 2.8.
Подпрограмма CompareWithBase предназначена для загрузки данных из файла базы данных, преобразования их к относительным параметрам. Подпрограмма сравнивает каждый отпечаток из базы данных с отпечатком, открытым для исследования. Результат возвращается как выходной параметр функции.
Текст подпрограммы приведен в разделе П.1.3
Подпрограмма CompareWithBase предназначена для:
1) преобразовать каждый отпечаток из базы данных из абсолютных параметров к относительным;
2) сравнить каждый отпечаток из базы данных с отпечатком, открытым для сравнения.
Схема подпрограммы Convert
Рис. 2.8
Структура TCompareFing предназначена для хранения информации о сравниваемых отпечатках пальцев. Структура TCompareFing объявлена следующим образом:
structTCompareFing
{
doubleval;
shortcDot;
short nfng;
CString name;
list<TPairAbsDot> dots;
list<TPairSur> surdots;
};
val - уровень схожести отпечатков
cDot - количество совпавших точек
nfng - номер отпечатка
name - файл отпечатка
dots; - совпавшие точки на отпечатках
surdots - окружения на одинаковых отпечатках
Структура TRelFing предназначена для хранения информации о отпечатках пальцев в относительных параметрах. Структура TRelFing объявлена следующим образом:
classTRelFing: publiclist<listTRelDot>
typedef list<TRelDot> listTRelDot;
class TRelDot
{
public:
short l,a1,a2;
TAbsDotabsDot;
}
l - растояние между точками
a1 - угол между направлением точки А и направлением A->B
a2 - угол между направлением точки В и направлением A
absDot - абсолютные параметры (необходимо для отображения на экране совпавших точек)
TAbsFing fing – список точек в абсолютных параметрах, полученый в разультате работы подсистемы анализа. Каждый элемент списка содержит все наобходимые параметры для обработки и преобразования в подсистеме распознавания:
class TAbsFing: public list<TAbsDot>
class TAbsDot
{
public:
CPoint coord;
double alpha;
bool type;
bool show;
};
coord - координаты
alpha - направление в точке
type - тип точки (1- окончание, 0- раздвоение)
show - видимость точки (1- видима, 0- скрыта)
Входные данные для данной подпрограммы представлены
TRelFing fingR –исследуемый отпечаток в относительных параметрах;
Bse – содержимое базы данных с отпечатками.
Выходные данные для данной подпрограммы представлены:
list<TCompareFing> – список, содержащий результаты сравнения отпечатков для каждого отпечатка из базы данных с исследуемым отпечатком.
В подпрограмме используются следующие подпрограммы:
1) LoadFing – загрузка отпечатка из базы данных
2) Compare – сравнение двух отпечатков
Схема подпрограммы «CompareWithBase» приведена на рис. 2.9.
Подпрограмма Compare предназначена для сравнения двух поданных на вход отпечатков. Подпрограмма реализует задачу поиска совпадающих отпечатков по базе данных. Сравнивает каждую точку на входном отпечатке с каждой точке на втором отпечатке. Результат возвращается как выходной параметр функции.
Текст подпрограммы приведен в разделе П.1.2
Подпрограмма Compare предназначена для
1) сравнения двух отпечатков, вычисления степени сходства;
2) реализация алгоритма распознавания отпечатка.
Схема подпрограммы CompareWithBase
Рис. 2.9
Структура TCompareFing предназначена для хранения информации о сравниваемых отпечатках пальцев. Структура TCompareFing объявлена следующим образом:
struct TCompareFing
{
doubleval;
shortcDot;
short nfng;
CString name;
list<TPairAbsDot> dots;
list<TPairSur> surdots;
};
val - уровень схожести отпечатков
cDot - количество совпавших точек
nfng - номер отпечатка
name - файл отпечатка
dots; - совпавшие точки на отпечатках
surdots - окружения на одинаковых отпечатках
Структура TRelFing предназначена для хранения информации о отпечатках пальцев в относительных параметрах. Структура TRelFing объявлена следующим образом:
class TRelFing: public list<listTRelDot>
typedef list<TRelDot> listTRelDot;
class TRelDot
{
public:
short l,a1,a2;
TAbsDotabsDot;
}
l - растояние между точками
a1 - угол между направлением точки А и направлением A->B
a2 - угол между направлением точки В и направлением A
absDot - абсолютные параметры (необходимо для отображения на экране совпавших точек)
Входные данные для данной подпрограммы представлены
TRelFing &fng – ссылка на список точек отпечатка пальца в относительных параметрах.
This – указатель на список точек второго отпечатка пальца в относительных параметрах
Выходные данные для данной подпрограммы представлены:
TCompareFing –результат сравнения двух отпечатков.
В подпрограмме используются следующие подпрограммы: нет
Схема подпрограммы «Compare» приведена на рис. 2.10.
Основной целью работы программы является опознавание личности по отпечаткам пальцев на основе сравнения структурного представления папиллярных узоров. Контрольный пример должен содержать большое количество тестовых отпечатков пальцев, при этом отпечаток одного и того же пальца должен быть представлен как минимум в двух экземплярах для сравнения их между собой.
Схема подпрограммы Compare
Рис. 2.10
Для теста использовалось около 50 отпечатков разных людей и разного возраста. На рис. 2.11, 2.12, 2.13 приведены несколько изображений папиллярного узора, которые предполагается сравненить между собой и другими отпечаткаи в базе данных отпечатков. Данные изображения получены посредством зачернения пальца и приложения его к листу белой бумаги, после чего отпечатоки были отсканированы и сохранены в виде bmp файлов на компьютере. Полученные таким образом отпечатки имеют не высокое качество, поэтому можно полностью проверить все этапы работы программы.