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

  return true;

}

bool TFingPicture::Line(CPoint from, CPoint to, int width, COLORREF color)

{

  if(!IsLoad) return false;

  CPen pen(PS_SOLID, width, color);

  pic.SelectObject(&pen);

  pic.MoveTo(from.x, from.y);

  pic.LineTo(to.x, to.y);

  return true;

}

bool TFingPicture::Rectangle(CPoint from, CPoint to, int width, COLORREF color)

{

  if(!IsLoad) return false;

  Line(from, CPoint(from.x, to.y), width, color);

  Line(CPoint(from.x, to.y), to, width, color);

  Line(to, CPoint(to.x, from.y), width, color);

  Line(CPoint(to.x, from.y), from, width, color);

  return true;

}

bool TFingPicture::Copy(TFingPicture &from)

{

  bmp = from.bmp;

  IsLoad = from.IsLoad;

  Screen = from.Screen;

  return pic.BitBlt(0, 0, bmp.bmWidth, bmp.bmHeight, &from.pic, 0, 0, SRCCOPY)>0;

}

CPoint TFingPicture::NextDotCW(const CPoint dot, int &vec)

//Поиск следующей точки "_по часовой_ стрелке"

//vec вероятное направление поиска

{

  int i = vec,

      step = 0;

  CPoint newdot = dot;

  COLORREF clMas[9];

  clMas[8] = clMas[0] = GetPixel(dot.x-1, dot.y-1);

  clMas[1] = GetPixel(dot.x,   dot.y-1);

  clMas[2] = GetPixel(dot.x+1, dot.y-1);

  clMas[3] = GetPixel(dot.x+1, dot.y);

  clMas[4] = GetPixel(dot.x+1, dot.y+1);

  clMas[5] = GetPixel(dot.x,   dot.y+1);

  clMas[6] = GetPixel(dot.x-1, dot.y+1);

  clMas[7] = GetPixel(dot.x-1, dot.y);

  do{

      if(clMas[i+1] < clMas[i])

      {

          vec = (i + 1) % 8;

          newdot.x = dot.x + incXY[vec].x;

          newdot.y = dot.y + incXY[vec].y;

          if(vec % 2 == 0) SetPixel(dot.x + incXY[vec+1].x, dot.y + incXY[vec+1].y, 0x000000);

          vec = (vec + 5) % 8;

          return newdot; //найдена новая точка

      }

      i = (i + 1) % 8;

      step++;

  }while(step <= 8);

  return dot;   //поиск ни к чему не привел

}

CPoint TFingPicture::NextDotCCW(const CPoint dot, int &vec)

//Поиск следующей точки "_против часовой_ стрелке"

//vec вероятное направление поиска

{

  int i = vec,

      step = 0;

  CPoint newdot = dot;

  COLORREF clMas[9];

  clMas[8] = clMas[0] = GetPixel(dot.x-1, dot.y-1);

  clMas[1] = GetPixel(dot.x-1, dot.y);

  clMas[2] = GetPixel(dot.x-1, dot.y+1);

  clMas[3] = GetPixel(dot.x,   dot.y+1);

  clMas[4] = GetPixel(dot.x+1, dot.y+1);

  clMas[5] = GetPixel(dot.x+1, dot.y);

  clMas[6] = GetPixel(dot.x+1, dot.y-1);

  clMas[7] = GetPixel(dot.x,   dot.y-1);


  do{

      if(clMas[i+1] < clMas[i])

      {

          vec = (i + 1) % 8;

          newdot.x = dot.x + incXY[(8-vec)%8].x;

          newdot.y = dot.y + incXY[(8-vec)%8].y;

          if(vec % 2 == 0) SetPixel(dot.x + incXY[8-vec-1].x, dot.y + incXY[8-vec-1].y, 0x000000);

          vec = (vec + 5) % 8;

          return newdot; //найдена новая точка

      }

      i = (i + 1) % 8;

      step++;

  }while(step <= 8);

  return dot;   //поиск ни к чему не привел

}

CPoint TFingPicture::GetSize()

//получение размера изображения

{    if(!IsLoad) return false;

  return CPoint(bmp.bmWidth, bmp.bmHeight);}

ПРИЛОЖЕНИЕ 2

РУКОВОДСТВО ПРОГРАММИСТА


П.2.1. НАЗНАЧЕНИЕ ПРОГРАММЫ

Программа распознавания личности по отпечаткам пальцев имеет идентификатор FingerAnalyser и предназначена для автоматической идентификации личности по папиллярному узору. Программа FingerAnalyser выполняет следующие функции:

1)     модификация изображения, исправление искажений;

2)     выделение локальных особенностей – минюций. формирование списка минюций в абсолютных параметрах;

3)     сортировка списка абсолютных параметров, исключение ложных  и ненадежных минюций;

4)     конвертирование абсолютных параметров в отностительные, формирование списка относительных параметров;

5)     установка системы допусков для учета корреляции изображений;

6)     сравнение одного отпечатка с множеством других.

Данная работа реализует такое преобразование изображения, при котором данные о расположение уникальных особенностей сохраняются наиболее полно и с наименьшим содержанием ложной информации.

Создаваемая система облегчит разработку алгоритмов обработки изображений, упростит анализ экспериментальных данных и выявление общих закономерностей.


П.2.2. УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ

Программа FingerAnalyser предъявляет следующие требования к техническим средствам:

-        стандартный x86-совместимый ПК;

-        тактовая частота процессора 900 МГц или более;

-        объем оперативной памяти не менее 64 Мб;

-        разрешение экрана монитора не менее 1024x768.

Программа FingerAnalyser предъявляет следующие требования к программным средствам:

-          операционная система семейства Windows (Windows 9x/ME/NT/2000/XP);

-          среда для разработки приложений Microsoft Visual Studio C++ 2003.


П.2.3. ХАРАКТЕРИСТИКА ПРОГРАММЫ

Программа FingerAnalyser требует для своего функционирования наличия в проекте файлов, содержащих растровые представления папиллярного узора.

В состав программы входят следующие файлы, необходимые для ее функционирования:

1)     FingerAnalyser.exe – исполняемый файл, содержащий основной интерфейс программы;

2)     MFC[1] – библиотеки для поддержки оконного среды;

3)     blank.bmp – пустое изображение;

4)     report.txt – файл отчет в который записываются все результаты сравнения;

5)     sav/*.sav – файлы со структурным представлением отпечатков;

6)     sav/fingbase.bse – база данных отпечатков;

7)     report.txt – файл-отчет с результатами проведенных сравнений.

Программа является интерактивной, т.е. требующей взаимодействия с пользователем, поэтому время выполнения отдельных этапов обработки не превышает 0.5 с. при использовании требуемых технических средств.


П.2.4. ОБРАЩЕНИЕ К ПРОГРАММЕ

Для запуска программы необходимо убедиться в том, что необходимые библиотеки MFC находятся в том же каталоге, что и исполняемый файл или в каталоге Windows/System32.

Для корректной работы программы она должна находиться в каталоге, к которому есть права на чтение и запись.

Для запуска работы подсистемы необходимо в оболочке системы на главном окне нажать на кнопку «Анализ» - для сравнения нужного отпечатка с набором имеющимся в базе данных, или «Запомнить в базу» - для внесения указанных отпечатков в базу данных.

Интерфейс программы представлен на рис. П.2.2.

Интерфейс программы FingerAnalyser

Рис. П.2.2


На форме программы в визуальном виде представляется, после открытия через пункт «Открыть», исходное изображение, после нажатия на кнопку «Анализ», скорректированное изображение и визуальное представление структурного вида отпечатка. После чего можно нажатием на кнопку «Сравнить» отыскать в базе схожие отпечатки.

При каждом анализе отпечатка создается файл с его структурным описанием. Для того чтобы поместить отпечаток в базу данных отпечатков, для последующего сравнения с ним, необходимо нажать на кнопку «Запомнить в базу». Для запоминания в базу можно выбирать группу файлов для применения операции записи в базу данных для всех выбранных файлов.


П.2.5. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ

Входными и выходными данными для программы является файл базы данных отпечатков sav/fingbase.bse. Структура файла:

src [kol] [dpi] [date] [description]

src [kol] [dpi] [date] [description]

...

src [kol] [dpi] [date] [description]


В каждой записи файла базы данных отпечатков содержится описание одного отпечатка. В табл. П.2.1 приведен формат записи.


Таблица П.2.1

Формат записи базы данных

Поле

Формат

Описание

src

Строка

путь к образу из которого была получена информация

kol

Целое

количество точек

dpi

Целое

качество исходного отпечатка (dot per inch)

date

Дата

дата отпечатка

description

строка

описание

Выходными данными для программы является файл sav/*.sav со структурным представлением, содержащий статистические характеристики минюций на отпечатке. Этот файл имеет следующий формат:

x y alpha type

x y alpha type

...

x y alpha type


В каждой строке файла структурного представления содержится описание одной минюции. В табл. П.2.2 приведен формат строки файла структурного описания.


Таблица П.2.2

Формат строки файла со структурным описанием

Поле

Формат

Описание

x

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.