Система идентификации личности по отпечаткам пальцев. Подсистема анализа изображения
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
контуру. Предназначена для реализации алгоритма исправления искажений и используется при поиске минюций на входном образе. Схема подпрограммы изображена на рис. 2.8.
Синтаксис:
CPoint TFingPicture::NextDotСCW(const CPoint dot, int &vec)
Входные данные для данной подпрограммы представлены:
CPoint dot структура данных точка {x,y} от которой нужно найти соседствующую точку;
int vec направление предыдущего перехода при поиске, vec[0..7]. Служит для ускорения поиска;
COLORREF clMas[9] массив цветов окрестных точек;
Выходные данные для данной подпрограммы представлены:
CPoint incXY[8] координаты окрестных точек;
CPoint newDot найденная точка, которая является смежной с точкой dot. Переход от точки dot к найденной смежной точке образует обход против часовой стрелки
Схема подпрограммы NextDotCW
Рис. 2.7
Схема подпрограммы NextDotСCW
Рис. 2.8
- Подпрограмма LookPic
Подпрограмма LookPic предназначена для обработки загруженного изображения и получение из него списка папиллярных линий. Каждая линия определяется одной точкой {x,y}. Схема подпрограммы изображена на рис. 2.9.
Синтаксис:
list TAnalysePicture::LookPic()
Входные данные для данной подпрограммы представлены:
TFingPicture *pic указатель на битовый образ в памяти, который был загружен для обработки
Выходные данные для данной подпрограммы представлены:
list Map список папиллярных линий на растре.
Используемые переменные:
Map список обрабатываемых линий на папиллярном узоре, каждой линии соответствует точка {x,y}.
Используемые подпрограммы:
Pic.GetPixel(x,y) возвращает цвет пикселя с координатами {x,y} на растре pic;
ClearLine(pic,x,y) удаление области iветом GetPixel(x,y) на растре pic.
Схема подпрограммы LookPic
Рис. 2.9
Подпрограмма ChangeLine
Подпрограмма ChangeLine предназначена для модификация линии на растре, производит исправление слипаний и обрывов. Схема подпрограммы изображена на рис. 2.10.
Синтаксис:
int TAnalysePicture::ChangeLine(list &_map)
Входные данные для данной подпрограммы представлены:
TFingPicture *pic указатель на битовый образ в памяти, который был загружен для обработки;
list::iterator _dot указатель на текущую обрабатываемую линию;
list &_map список обрабатываемых линий на растре.
Выходные данные для данной подпрограммы представлены:
int changeN произведенное количество исправлений на растре;
TFingPicture *pic в результате обработки входной образ подвергается изменениям.
Используемые переменные:
Dot0, dot1 точки принадлежащие контуру обрабатываемой линии. Начальное значение dot0 = _dot.
vec0, vec1 локальные направления;
step шаг получения последующей точки;
alphaTest предопределенная константа, определяющая сильное искривление контура папиллярной линии.
Используемые подпрограммы:
GetVec(dot0, dot1) направление из точки dot0 в dot1;
NextDotCW(dot0, step) получение координат точки следующей через step точек.
Слипание и обрыв описаны в п.п. 2.2.4.
Схема подпрограммы ChangeLine
Рис. 2.10
- Подпрограмма ReadPic
Подпрограмма ReadPic пердназначена для поиска локальных особенностей на растре. Схема подпрограммы изображена на рис. 2.11.
Синтаксис:
TAbsFing TAnalysePicture::ReadPic(list::iterator _dot)
Входные данные для данной подпрограммы представлены:
TFingPicture *pic указатель на битовый образ в памяти, который был загружен для обработки;
list::iterator _dot указатель на текущую обрабатываемую линию.
Выходные данные для данной подпрограммы представлены:
TAbsFing absfing список параметров локальных особенностей, формат описан в п.п. 2.1.3.
Используемые переменные:
Dot0, dot1 точки принадлежащие контуру обрабатываемой линии. Начальное значение dot0 = _dot;
vec0, vec1 локальные направления;
step шаг получения последующей точки;
alphaTest предопределенная константа, определяющая сильное искривление контура папиллярной линии.
Используемые подпрограммы:
GetVec(dot0, dot1) направление из точки dot0 в dot1;
NextDotCW(dot0, step) получение координат точки следующей через step точек.
Раздвоение и окончание описаны в п.п. 2.3.4.
- Подпрограмма DotsFilter
Подпрограмма DotsFilter предназначена для сортировки списка найденных локальных особенностей и выделение списка минюций. Схема подпрограммы изображена на рис. 2.12.
Синтаксис:
int TAnalysePicture::DotsFilter(TAbsFing &_dots)
Входные данные для данной подпрограммы представлены:
TAbsFing &_dots список точек найденный на растре, он содержит помимо нужных точек минюций, лишние, непостоянные точки, которые не подходят для объектного описания папиллярного узора.
Выходные данные для данной подпрограммы представлены:
TAbsFing _dots список параметров минюций, формат описан в
п.п. 2.1.3.
Используемые подпрограммы:
Порез(dot) относится ли данная точка к точкам образованным порезами и инородными телами (см. п.п. 2.4.4);
Filter(dot1, dot2) условие фильтрования (см. п.п. 2.4.4).
Схема подпрограммы ReadPic
Рис. 2.11
Схема подпрограммы DotsFilter
Рис. 2.12
- Подпрограмма AnalysePicture
Подпрограмма AnalysePicture предназначена для обработки загруженного изображения и получение из него объектного образа для последующего хранения и сравнения. Схема подпрограммы изображена на рис. 2.13.
Синтаксис:
TAbsFing TAnalysePicture::AnalysePicture()
Входные данные для данной подпрограммы представлены:
T