Biometria: Processamento de imagens capturadas em leitores de impressão digital
Extração da imagem com um leitor de impressão digital é o primeiro passo no processo de verificação ou identificação biométrica. Neste artigo utilizaremos a biblioteca libdpfp para efetuar o processamento do cálculo das minúcias das imagens capturadas em leitores biométricos de impressão digital.
[ Hits: 88.765 ]
Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 05/10/2006 | Blog: http://assuntonerd.com.br
libdpfp-0.2.1/ libdpfp-0.2.1/config.guess libdpfp-0.2.1/ChangeLog libdpfp-0.2.1/libdpfp/ libdpfp-0.2.1/libdpfp/Makefile.am libdpfp-0.2.1/libdpfp/dpfp_fprint_efinger.c libdpfp-0.2.1/libdpfp/dpfp.c : : : : : : ALGUNS SEGUNDOS DEPOIS : : : : : : : : : libdpfp-0.2.1/AUTHORS libdpfp-0.2.1/COPYING libdpfp-0.2.1/configureAgora utilize o comando configure para uma posterior compilação.
checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc : : : : : : ALGUNS SEGUNDOS DEPOIS : : : : : : : : : config.status: creating examples/Makefile config.status: creating config.h config.status: executing depfiles commandsAgora com o comando make, compile a a biblioteca libdpfp, abaixo o exemplo de compilação:
make all-recursive make[1]: Entering directory `/neti/prg/uareu4000/libdpfp-0.2.1' Making all in libdpfp make[2]: Entering directory `/neti/prg/uareu4000/libdpfp-0.2.1/libdpfp' : : : : : : ALGUNS SEGUNDOS DEPOIS : : : : : : : : : make[2]: Leaving directory `/neti/prg/uareu4000/libdpfp-0.2.1' make[1]: Leaving directory `/neti/prg/uareu4000/libdpfp-0.2.1'Transforme-se em SUPER-USUÁRIO e entre na pasta examples. Digite o comando "ls" para verificar se os arquivos binários se encontram presentes.
capture_continuous capture_finger_enhanced capture_continuous.c capture_finger_enhanced.c capture_continuous-capture_continuous.o capture_finger_enhanced.o capture_continuous_gtk capture_finger.o capture_continuous_gtk.c Makefile capture_continuous_gtk-capture_continuous_gtk.o Makefile.am capture_finger Makefile.in capture_finger.cConecte o sensor de impressão digita e execute o programa capture_finger para verificar se o leitor esta funcionando corretamente.
dpfp_open_usb: interface claim failed dev: Device or resource busy dpfp_set_mode: 0 Falha de segmentaçãoCaso o erro "Device or resource busy" ocorra como no exemplo acima, provavelmente você já possui o módulo do kernel do sensor u.are.u instalado em seu sistema (artigo anterior: Instalando leitores de impressão digital modelo Digital Persona no Linux). Este módulo foi incorporado na nova versão da biblioteca, assim sendo não mais necessário alocá-lo em memória. Para removê-lo, utilize o comando "rmmod" como no exemplo baixo:
dpfp_get_hwstat: [1] 1 dpfp_set_mode: 0 dpfp_set_hwstat_pwr: power off dpfp_set_hwstat_pwr: power on dpfp_get_irq: irq type 56aa place your finger on the sensor dpfp_set_mode: 10 dpfp_get_irq: timeout, retry dpfp_get_irq: irq type 0101 dpfp_set_mode: 20 dpfp_fprint_write_to_file: wrote fprint to finger.pgm dpfp_set_mode: 0 dpfp_set_hwstat_pwr: power offSe tudo estiver funcionando corretamente, uma imagem com o nome finger.pgm será gerada no disco. Veja a imagem gerada pelo programa capture_finger:
dpfp_get_hwstat: [1] 85 dpfp_open_usb: device powered down on open, attempting to correct dpfp_set_hwstat_pwr: power on dpfp_get_hwstat: [1] 0 dpfp_open_usb: device state corrected successfully dpfp_set_mode: 0 dpfp_set_hwstat_pwr: power off dpfp_set_hwstat_pwr: power on dpfp_get_irq: irq type 56aa using Xv format 0x32595559 YUY2 packed dpfp_set_mode: 20 Press M for CCD mode, E for enhanced mode, Q to quit dpfp_set_mode: 0 dpfp_set_hwstat_pwr: power off
dpfp_get_hwstat: [1] 83 dpfp_open_usb: device powered down on open, attempting to correct dpfp_set_hwstat_pwr: power on dpfp_get_hwstat: [1] 0 dpfp_open_usb: device state corrected successfully dpfp_set_mode: 0 dpfp_set_hwstat_pwr: power off dpfp_set_hwstat_pwr: power on dpfp_get_irq: irq type 56aa dpfp_set_mode: 20 place your finger on the sensor dpfp_set_mode: 10 dpfp_get_irq: irq type 0101 dpfp_set_mode: 20 dpfp_set_mode: 0 dpfp_set_hwstat_pwr: power off dpfp_fprint_write_to_file: wrote fprint to finger.pgm dpfp_fprint_soften_mean: took 0.006778 seconds dpfp_fprint_get_direction: took 0.804882 seconds fprint_direction_low_pass: took 0.139284 seconds dpfp_fprint_get_frequency: took 1.362015 seconds dpfp_fprint_get_mask: took 0.007775 seconds dpfp_fprint_enhance_gabor: took 4.805600 seconds dpfp_fprint_write_to_file: wrote fprint to finger_enhanced.pgm dpfp_fprint_thin: took 0.057944 seconds enhancements took 7.189731 seconds in total dpfp_fprint_write_to_file: wrote fprint to finger_thinned.pgmVeja as imagens geradas como resultado:
Instalando o poderoso banco de dados IBM DB2!
Criando uma aplicação em shell script integrada com o Interbase/Firebird
IPCMSG: Comunicação inter-processos sem magia negra
SANE: Compartilhe seu scanner na rede
Linux: Executando comandos utilizando a tecnologia biométrica de reconhecimento de voz
Como submeter dados de CDDB de um CD de áudio ao Freedb
Baixando as fotos da sua câmera digital
Certificado Digital para Peticionamento Eletrônico (2018)
Catalogando distribuições, usuários e ambientes para a melhor distribuição
Upgrade no Arch Linux usando outro PC com Internet rápida
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Quero reviver um computador antigo mas tive problemas (12)
como funciona endereçamento ip? (6)