КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Описание подпрограммПодпрограмма NextDotCW. Подпрограмма NextDotCW производит поиска следующей точки на контуре линии «по часовой стрелке», благодаря ей организуется обход линии по контуру. Предназначена для реализации алгоритма исправления искажений и используется при поиске минюций на входном образе. Схема подпрограммы изображена на рисунке 3.9 Синтаксис: CPoint TFingPicture::NextDotCW(const CPoint dot, int &vec) Входные данные для данной подпрограммы представлены: CPoint dot – структура данных – точка {x,y} от которой нужно найти соседствующую точку; int vec – направление предыдущего перехода при поиске, vecÎ[0..7]. Служит для ускорения поиска; COLORREF clMas[9] – массив цветов окрестных точек; Выходные данные для данной подпрограммы представлены: CPoint incXY[8] – координаты окрестных точек; CPointnewDot – найденная точка, которая является смежной с точкой dot. Переход от точки dot к найденной смежной точке образует обход «по часовой стрелке». Подпрограмма NextDotCCW. Подпрограмма NextDotCCW производит поиска следующей точки на контуре линии «против часовой стрелки», благодаря ей организуется обход линии по контуру. Предназначена для реализации алгоритма исправления искажений и используется при поиске минюций на входном образе. Схема подпрограммы изображена на рисунке 3.10 Синтаксис: 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 к найденной смежной точке образует обход «против часовой стрелки»
Рисунок 3.9 - Схема подпрограммы «NextDotCW»
Рисунок 3.10 - Схема подпрограммы «NextDotСCW»
Подпрограмма LookPic. Подпрограмма LookPic предназначена для обработки загруженного изображения и получение из него списка папиллярных линий. Каждая линия определяется одной точкой {x,y}. Схема подпрограммы изображена на рисунке 3.11. Синтаксис:
list<TMapElDot> TAnalysePicture::LookPic()
Входные данные для данной подпрограммы представлены: TFingPicture *pic – указатель на битовый образ в памяти, который был загружен для обработки Выходные данные для данной подпрограммы представлены: list<TMapElDot>Map – список папиллярных линий на растре. Используемые переменные: Map – список обрабатываемых линий на папиллярном узоре, каждой линии соответствует точка {x,y}. Используемые подпрограммы: Pic.GetPixel(x,y)– возвращает цвет пикселя с координатами {x,y} на растре pic; ClearLine(pic,x,y) – удаление области с цветом GetPixel(x,y) на растре pic. Рисунок 3.11 - Схема подпрограммы «LookPic»
Подпрограмма ChangeLine. Подпрограмма ChangeLine предназначена для модификация линии на растре, производит исправление слипаний и обрывов. Схема подпрограммы изображена на рисунке 3.12. Синтаксис: int TAnalysePicture::ChangeLine(list<TMapElDot>::iterator _dot, list<TMapElDot>&_map)
Входные данные для данной подпрограммы представлены: TFingPicture *pic – указатель на битовый образ в памяти, который был загружен для обработки; list<TMapElDot>::iterator _dot – указатель на текущую обрабатываемую линию; list<TMapElDot>&_map – список обрабатываемых линий на растре. Выходные данные для данной подпрограммы представлены: intchangeN – произведенное количество исправлений на растре; TFingPicture *pic – в результате обработки входной образ подвергается изменениям. Используемые переменные: Dot0, dot1 –точки принадлежащие контуру обрабатываемой линии. Начальное значение dot0 = _dot. vec0, vec1 – локальные направления; step – шаг получения последующей точки; alphaTest – предопределенная константа, определяющая сильное искривление контура папиллярной линии. Используемые подпрограммы: GetVec(dot0, dot1)– направление из точки dot0 в dot1; NextDotCW(dot0, step) – получение координат точки следующей через step точек. Слипание и обрыв описаны в пункте 3.2. Рисунок 3.12 - Схема подпрограммы «ChangeLine»
Подпрограмма ReadPic. Подпрограмма ReadPic предназначена для поиска локальных особенностей на растре. Схема подпрограммы изображена на рисунке. 3.13. Синтаксис: TAbsFing TAnalysePicture::ReadPic(list<TMapElDot>::iterator _dot) Входные данные для данной подпрограммы представлены: TFingPicture *pic – указатель на битовый образ в памяти, который был загружен для обработки; list<TMapElDot>::iterator _dot – указатель на текущую обрабатываемую линию. Выходные данные для данной подпрограммы представлены: TAbsFing absfing – список параметров локальных особенностей, формат описан в п.п. 2.1.3. Используемые переменные: Dot0, dot1 – точки принадлежащие контуру обрабатываемой линии. Начальное значение dot0 = _dot; vec0, vec1 – локальные направления; step – шаг получения последующей точки; alphaTest – предопределенная константа, определяющая сильное искривление контура папиллярной линии. Используемые подпрограммы: GetVec(dot0, dot1)– направление из точки dot0 в dot1; NextDotCW(dot0, step) – получение координат точки следующей через step точек. Раздвоение и окончание описаны в пункте 3.3. Подпрограмма DotsFilter. Подпрограмма DotsFilter предназначена для сортировки списка найденных локальных особенностей и выделение списка минюций. Схема подпрограммы изображена на рисунке 3.14. Синтаксис: int TAnalysePicture::DotsFilter(TAbsFing &_dots) Входные данные для данной подпрограммы представлены: TAbsFing &_dots – список точек найденный на растре, он содержит помимо нужных точек – минюций, лишние, непостоянные точки, которые не подходят для объектного описания папиллярного узора. Выходные данные для данной подпрограммы представлены: TAbsFing _dots – список параметров минюций, формат описан в п.п. 2.1.3. Используемые подпрограммы: Порез(dot) – относится ли данная точка к точкам образованным порезами и инородными телами (см. п.п. 2.4.4); Filter(dot1, dot2) – условие фильтрования (см. п.п. 2.4.4). Рисунок 3.13 - Схема подпрограммы «ReadPic» Рисунок 3.14 - Схема подпрограммы «DotsFilter»
Подпрограмма AnalysePicture. Подпрограмма AnalysePicture предназначена для обработки загруженного изображения и получение из него объектного образа для последующего хранения и сравнения. Схема подпрограммы изображена на рисунке 3.15. Синтаксис: TAbsFing TAnalysePicture::AnalysePicture()
Входные данные для данной подпрограммы представлены: TFingPicture *pic – указатель на битовый образ в памяти, который был загружен для обработки. Выходные данные для данной подпрограммы представлены: TAbsFing Ret– список координат минюций в абсолютных параметрах, формат описан в пункте 3.6. Используемые переменные: Map – список обрабатываемых линий на папиллярном узоре, каждой линии соответствует точка {x,y}; ChangeN – хранит количество сделанных изменений на растре. Используемые подпрограммы: LookPic – возвращает список линий на отпечатке; ChangeLine(i, Map) – корректировка линии на растре, избавление от слипаний и обрывов; ReadPic – возвращает список параметров специфических точек, см. формат в п.п. 2.1.3; DotsFilter(Ret) – сортировка специфических точек.
|