{Resolvido} Comparação e consulta de digitais Dinamicamente

19 respostas
magalli

Oii gente,

to fazendo captura de digital atraves do leitor biometrico essas imagens ficam registradas no hd,
ai precisa fazer a comparação delas e a leituras delas para ver se realmente é a digital da pessoa,
como faço isso de modo dinamico em tempo real tem algum algoritimo para isto em java ??

19 Respostas

rmendes08

Moça, isso tá bem longe de ser Java Básico …

E

Pode ser básico se ela ler cuidadosamente o manual da biblioteca que ela deve estar usando para fazer o cadastramento das digitais :slight_smile:

magalli

Alguém tem alguma ideia…

magalli

Mais nao fala nada sobre isso no manual…

E

Por acaso o manual sugere algum método para fazer a consulta das digitais? Ele deve pelo menos indicar alguma bibliografia, ou talvez fazer a propaganda de algum outro produto que você tem de comprar.

É que achar uma impressão digital nessas coleções de “minutiae” (que é o nome para os hashes gerados por cada impressão digital) não é só usar um “equals” - há um processamento mais complexo que deve ser efetuado.

magalli

entanglement:
Por acaso o manual sugere algum método para fazer a consulta das digitais? Ele deve pelo menos indicar alguma bibliografia, ou talvez fazer a propaganda de algum outro produto que você tem de comprar.

É que achar uma impressão digital nessas coleções de “minutiae” (que é o nome para os hashes gerados por cada impressão digital) não é só usar um “equals” - há um processamento mais complexo que deve ser efetuado.

O leitor é o digitalpersona o que é minutiae ??

nebster

magali, vc pode falar o modelo do leitor utilizado para leitura de codigo de barras e a base do seu codigo para ter um auxilio maior?

E

Acho que você tem de ler a documentação completa do SDK antes de perguntar qualquer coisa aqui.

É que esse é um conceito básico, e sem isso você não consegue prosseguir.

Uma coisa que você não deve estar sabendo: não se comparam diretamente as imagens das impressões digitais, porque isso seria um processo muito lento e falho.
Em vez disso, comparam-se alguns pontos (que se chamam “minutiae”) que são, por exemplo, lugares onde algumas linhas das impressões digitais se encontram ou se separam.
Essas “minutiae” são mais fáceis e rápidas para comparar. Entretanto, as imagens ainda têm de ser comparadas porque as “minutiae” só dão uma boa filtragem na base de impressões digitais; a comparação mais fina é feita com as imagens mesmo.

O SDK deve ter um método que faz essa comparação, porque senão ele é inútil :slight_smile:

magalli

Eu as imagnes são gravadas no hd e depois atraves de um while vai fazendo a verificação…

magalli

entanglement:
Acho que você tem de ler a documentação completa do SDK antes de perguntar qualquer coisa aqui.

É que esse é um conceito básico, e sem isso você não consegue prosseguir.

Uma coisa que você não deve estar sabendo: não se comparam diretamente as imagens das impressões digitais, porque isso seria um processo muito lento e falho.
Em vez disso, comparam-se alguns pontos (que se chamam “minutiae”) que são, por exemplo, lugares onde algumas linhas das impressões digitais se encontram ou se separam.
Essas “minutiae” são mais fáceis e rápidas para comparar. Entretanto, as imagens ainda têm de ser comparadas porque as “minutiae” só dão uma boa filtragem na base de impressões digitais; a comparação mais fina é feita com as imagens mesmo.

O SDK deve ter um método que faz essa comparação, porque senão ele é inútil :slight_smile:

vo pesqisa sobre o minutiae é bem interessante isso e nem sabia que existia…

magalli

Assim vamos pensar na seguinte situação

while (cont <= max) {
            String caminho = "C:\\Magalli\\" + cont + ".jpeg";


Como faço para que na hora que o java for procurar essas imagens já estejam pre carregadas sem
precisar que ele percorra todo caminho para nao haver perca de desempenho existe como fazer isto ??

rmendes08

magalli:
Assim vamos pensar na seguinte situação

while (cont <= max) {
            String caminho = "C:\\Magalli\\" + cont + ".jpeg";


Como faço para que na hora que o java for procurar essas imagens já estejam pre carregadas sem
precisar que ele percorra todo caminho para nao haver perca de desempenho existe como fazer isto ??

O nome disso é cache. Mas pra te ajudar você precisa fornecer mais alguns detalhes, tipo, quem escreve esses arquivos e quem lê .

magalli

rmendes08:
magalli:
Assim vamos pensar na seguinte situação

while (cont <= max) {
            String caminho = "C:\\Magalli\\" + cont + ".jpeg";


Como faço para que na hora que o java for procurar essas imagens já estejam pre carregadas sem
precisar que ele percorra todo caminho para nao haver perca de desempenho existe como fazer isto ??

O nome disso é cache. Mas pra te ajudar você precisa fornecer mais alguns detalhes, tipo, quem escreve esses arquivos e quem lê .

Então eu utilizo o metodo do leitor para fazer a escrita das imagens .jpeg foi só um exemplo por que ele gera as imagens em .fpt(padrão do leitor),
tem algum meio de deixar essas imagens em cache ? e fazer a atualizações dela na cache ??

rmendes08

magalli:
rmendes08:
magalli:
Assim vamos pensar na seguinte situação

while (cont <= max) {
            String caminho = "C:\\Magalli\\" + cont + ".jpeg";


Como faço para que na hora que o java for procurar essas imagens já estejam pre carregadas sem
precisar que ele percorra todo caminho para nao haver perca de desempenho existe como fazer isto ??

O nome disso é cache. Mas pra te ajudar você precisa fornecer mais alguns detalhes, tipo, quem escreve esses arquivos e quem lê .

Então eu utilizo o metodo do leitor para fazer a escrita das imagens .jpeg foi só um exemplo por que ele gera as imagens em .fpt(padrão do leitor),
tem algum meio de deixar essas imagens em cache ? e fazer a atualizações dela na cache ??

E a API do leitor não te fornece nenhum método para devolver os dados como um objeto ou um array ? Ou seja, não há nenhum método que retorne estes dados em memória ?

magalli

rmendes08:
magalli:
rmendes08:
magalli:
Assim vamos pensar na seguinte situação

while (cont <= max) {
            String caminho = "C:\\Magalli\\" + cont + ".jpeg";


Como faço para que na hora que o java for procurar essas imagens já estejam pre carregadas sem
precisar que ele percorra todo caminho para nao haver perca de desempenho existe como fazer isto ??

O nome disso é cache. Mas pra te ajudar você precisa fornecer mais alguns detalhes, tipo, quem escreve esses arquivos e quem lê .

Então eu utilizo o metodo do leitor para fazer a escrita das imagens .jpeg foi só um exemplo por que ele gera as imagens em .fpt(padrão do leitor),
tem algum meio de deixar essas imagens em cache ? e fazer a atualizações dela na cache ??

E a API do leitor não te fornece nenhum método para devolver os dados como um objeto ou um array ? Ou seja, não há nenhum método que retorne estes dados em memória ?

Não eu utilizo essa API http://www.digitalpersona.com/Support/Reference-Material/Guides/SDK-Guides/U-are-U-SDK-2-2-Developer-Guide/ dá uma olhada…

rmendes08

Dando uma passada de olho no manul, reparei que na página 40 ele diz que a API já fornece classes para identificação e comparação de digitais; Acho que pesquisando melhor você cosegue achar essa implementação. Abs.

magalli

Só pra tirar a dúvida como funcionaria se fosse para eu colocar uma pasta cheia de arquivos em cache no java vc tem alguma ideia nem que for por cima mesmo para eu tenta implementar…

rmendes08

Só pra tirar a dúvida como funcionaria se fosse para eu colocar uma pasta cheia de arquivos em cache no java vc tem alguma ideia nem que for por cima mesmo para eu tenta implementar…

Basicamente, seria ler estes arquivos para arrays de bytes e colocá-los em uma HashMap:

List<String> nomesArquivos;

  Map<String,byte[]> cache = new HashMap<>();

  for(String nome : nomesArquivos){
     byte[] dados = carregaArquivoParaMemoria(nome);
     cache.put(nome,dados);    
  }

Para recuperar os dados, basta usar o nome do arquivo:

byte [] dados = cache.get(nomeArquivo);
magalli

Só pra tirar a dúvida como funcionaria se fosse para eu colocar uma pasta cheia de arquivos em cache no java vc tem alguma ideia nem que for por cima mesmo para eu tenta implementar…

Basicamente, seria ler estes arquivos para arrays de bytes e colocá-los em uma HashMap:

List<String> nomesArquivos;

  Map<String,byte[]> cache = new HashMap<>();

  for(String nome : nomesArquivos){
     byte[] dados = carregaArquivoParaMemoria(nome);
     cache.put(nome,dados);    
  }

Para recuperar os dados, basta usar o nome do arquivo:

byte [] dados = cache.get(nomeArquivo);

No caso a pasta tem varias imagens exemplo C:\Digitais dentro dela temos: 1.fpt, 2.fpt,…,100.fpt,…,200.fpt são varias imagens,
como fica a lógica para ele busca pelos números…?
ou eu teria que no codigo colocar C:\digitais\1.ftp, C:\digitais\2.ftp, e assim por diante ??

Criado 2 de julho de 2013
Ultima resposta 4 de jul. de 2013
Respostas 19
Participantes 4