Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Las huellas digitales o huellas dactilares también llamadas

Enviado por   •  16 de Enero de 2018  •  2.052 Palabras (9 Páginas)  •  445 Visitas

Página 1 de 9

...

La era electrónica, ha iniciado una serie de sensores compactos que proporcionan imágenes digitales de estos patrones. Estos sensores pueden ser fácilmente incorporados en periféricos de computación existentes, como el mouse o el teclado. Esto ha dirigido el incremento del uso automático de identificación por huella digital, en ambos sistemas civiles y legales

[pic 3]

Representación de huellas digitales

La singularidad de una huella digital es determinada por la topografía en los relieves de la yema de los dedos, y la presencia de ciertas anomalías llamadas minucias.

Típicamente, la configuración global definida por estas anomalías, es usada para determinar la clase o el tipo de huella digital, mientras que la distribución de las minucias es usada para comparar y establecer la similitud entre dos huellas digitales.

Minucias

Las minucias, en términos de huellas digitales, son los puntos de interés, como bifurcaciones y terminaciones, ejemplos:

[pic 4]

[pic 5]

Definición del Problema

Ahora bien, una vez analizado y comprendido como se identifica una huella digital, los usos industriales, legales o civiles que tiene, nos enfrentamos a realizar una interfaz donde podamos comparar una huella digital, con las que tengamos en una base de datos, o contra cualesquier otra que se ingrese. Esto se logra una vez obteniendo la imagen de interés, para generar su procesamiento.

El algoritmo en primera instancia binariza la imagen, o dicho en otras palabras, la transforma de una imagen de tonos grises a una imagen en blanco y negro. Una vez realizado lo anterior se hacen unas pequeñas correcciones en la imagen, como es usar el comando “bwmorph” junto con algunas de sus opciones, “clean” la cual remueve los pixeles isolados con valor 1 rodeados de 8 vecinos de valor 0. “fill” remueve los pixeles isolados en la imagen, los pixeles de valor 0 rodeados de 8 vecinos de valor 1, y los convierte en 1. Y como última instancia la opción “thin” adelgaza la línea que se dibuja con los pixeles de valor 1, y se genera una línea con el ancho de un pixel.

El algoritmo funciona identificando las frecuencias de ciertas minucias en la huella digital, para realizar esto, sometemos a nuestra imagen a ser comparada pixel por pixel, en sus 8 vecinos, identificando de esta manera si un pixel es un punto final de una línea, una bifurcación, o una cresta hacia arriba o hacia abajo.

Las frecuencias se comparan contra las de otra imagen tendiendo un rango de aceptación de 30%

Codificación

function varargout = HuellaDigital1(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @HuellaDigital1_OpeningFcn, ...

'gui_OutputFcn', @HuellaDigital1_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function HuellaDigital1_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = HuellaDigital1_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function cargarimagen_Callback(hObject, eventdata, handles)

[FileName Path]=uigetfile({'*.jpg;*.bmp;*.png'},'Seleccionar Huella');

if isequal(FileName,0)

return

else

huella1=imread(strcat(Path,FileName));

[i j]=size(huella1);

%Binarizar

for j=1:j

for i=1:i

if huella1(i,j)>=25 %umbral en escala de gris

huella1(i,j)=0;

else

huella1(i,j)=1;

end

end

end

%Limpiar y rellenar la imagen

huella1=bwmorph(huella1,'clean');

huella1=bwmorph(huella1,'fill');

%Maximizar el adelgazamiento de la linea

huella1=bwmorph(huella1,'thin');

huella1=bwmorph(huella1,'thin');

huella1=bwmorph(huella1,'thin');

imshow(huella1,'Parent',handles.axes1);

end

handles.huella1=huella1;

guidata(hObject,handles)

function cargarimagen2_Callback(hObject, eventdata, handles)

[FileName Path]=uigetfile({'*.jpg;*.bmp;*.png'},'Seleccionar Huella');

...

Descargar como  txt (16.4 Kb)   pdf (68.8 Kb)   docx (22.1 Kb)  
Leer 8 páginas más »
Disponible sólo en Essays.club