Система идентификации личности по отпечаткам пальцев. Подсистема анализа изображения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



контуру. Предназначена для реализации алгоритма исправления искажений и используется при поиске минюций на входном образе. Схема подпрограммы изображена на рис. 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

  1. Подпрограмма 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

  1. Подпрограмма 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.

  1. Подпрограмма 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

  1. Подпрограмма AnalysePicture

Подпрограмма AnalysePicture предназначена для обработки загруженного изображения и получение из него объектного образа для последующего хранения и сравнения. Схема подпрограммы изображена на рис. 2.13.

Синтаксис:

TAbsFing TAnalysePicture::AnalysePicture()

Входные данные для данной подпрограммы представлены:

T