Дактилоскоп: цифровая обработка отпечатков пальца

дипломная работа

6.2 Структуры данных

Line_appr = record

value: integer;

begin_dir,end_dir: integer;

Max_dir: integer;

end;

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

Value: integer - данное поле содержит аппроксимированное значение некоторого участка.

begin_dir: integer - содержит значение начала аппроксимированного участка. Данное значение представляет собой не что иное, как номер направление (от 0 до 35).

end_dir: integer - содержит значение конца аппроксимированного участка. Это значение, также как и begin_dir, представляет собой номер направления.

Max_dir: integer - данное поле содержит номер направления, при котором на данном аппроксимированном участке [begin_dir,end_dir] достигается максимальное значение, на не аппроксимированном графике. Данное направление, в случае если этот участок будет локальным максимумом, и его вероятность превысит порог, берется в качестве направления точки.

Tpoint = record

x,y: integer;

type_point: integer;

end;

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

x,y: integer - это экранные координаты найденной точки.

type_point: integer - это тип найденной точки (т.е. это может быть окончание линии или разветвление и т.д.).

T_Line_Appr_array = array [1..35] of Line_appr;

Это массив записей Line_appr. Таким образом, с помощью данного массива представляется аппроксимированный график.

T_All_Y = array [0..35] of integer;

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

T_Stack_El = class(TObject)

x,y: integer;

direction: integer;

end;

Данный класс представляет собой элемент стека. Используется на стадии отслеживания линии. Т.к. в задачах подобного типа, как правило, трудно предугадать размер стека, поэтому стек был реализован в виде списка, где в каждом элементе содержится указатель на элемент стека. Под элементы стека также динамически выделяется память. Т.к. все объекты в Object Pascal динамические и в синтаксисе необходимо указывать дополнительных ^, что не загромождает код было решено реализовать элемент стека в виде потомка класса Tobject, и заодно наследовать все его полезные свойства, т.е. не требуется самостоятельно заботиться о выделении памяти под объект и т.п.

Делись добром ;)