Java 通过三方库实现指纹识别对比

这篇博客介绍了如何利用Java结合SourceAFIS第三方库进行指纹识别和对比。通过示例代码展示了如何读取图片并计算指纹的相似度,从而实现指纹识别功能。
摘要由CSDN通过智能技术生成
共两个Java类,示例如下:

package org.jeecg.modules.buss.test;

import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;

public class Sourceafis {
    /**
     * 通过三方库实现指纹识别对比
     * @author xq
     */
    public static void main(String[] args) throws IOException {
        System.out.println("========比对开始=======");
        FingerPrint fp1 =new FingerPrint(ImageIO.read(new File("D:/1.jpg")));
        FingerPrint fp2 =new FingerPrint(ImageIO.read(new File("D:/4.jpg")));
        System.out.println("相似度:" + fp1.compare(fp2) * 100 + "%");
        System.out.println("========比对结束=======");
    }
}


package org.jeecg.modules.buss.test;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.util.Arrays;

/**
 * 均值哈希实现图像指纹比较
 * @author guyadong
 *
 */
public final class FingerPrint {
    /**
     * 图像指纹的尺寸,将图像resize到指定的尺寸,来计算哈希数组
     */
    private static final int HASH_SIZE=16;
    /**
     * 保存图像指纹的二值化矩阵
     */
    private final byte[] binaryzationMatrix;
    public FingerPrint(byte[] hashValue) {
        if(hashValue.length!=HASH_SIZE*HASH_SIZE)
            throw new IllegalArgumentException(String.format("length of hashValue must be %d",HASH_SIZE*HASH_SIZE ));
        this.binaryzationMatrix=hashValue;
    }
    public FingerPrint(String hashValue) {
        this(toBytes(hashValue));
    }
    public FingerPrint (BufferedImage src){
        this(hashValue(src));
    }
    private static byte[] hashValue(BufferedImage src){
        BufferedImage hashImage = resize(src,HASH_SIZE,HASH_SIZE);
        byte[
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值