gpt4 book ai didi

java - 将虹膜图像与 opencv 进行比较

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:41 25 4
gpt4 key购买 nike

我需要虹膜比较方面的帮助。

我已经对我的虹膜图像进行了分割和标准化。现在我想提取特征,将其添加到数据库中,或者只是简单地添加到特征向量列表中,然后将其与其他特征向量进行比较。我想让我的应用程序决定这样的虹膜是否已经在数据库中。当然图像是不同的,它们是在不同的光线、角度等下完成的。

我认为 Gabor 过滤器会有帮助,所以我将其设置为 12 个不同的参数值:

Mat kernel = Imgproc.getGaborKernel(new Size(25, 25), sigma, theta, lambda, gamma, psi, CvType.CV_64F);
Scalar sum = Core.sumElems(kernel); //kerner normalization
Core.divide(kernel, sum, kernel);
Imgproc.filter2D(floatSource, dest, CvType.CV_64F, kernel);

然后我使用这个函数计算 12 个汉明距离:

dist_ham = Core.norm(it1.next(), it2.next(), Core.NORM_HAMMING);

然后求平均值。

而且...它不起作用。当我比较同一虹膜或 2 个不同虹膜的 2 个不同图像时,汉明距离是相似的。我怎样才能让我的算法更好?也许我应该使用一些在 openCV mathers 中实现的东西来获得好的结果?对我来说,使用哪种算法并不重要,我只希望有好的结果。我是一个小初学者。

一些示例图片:第一个人 img1:enter image description here第一个人 img1 的归一化虹膜:enter image description here

第一个人 img2: enter image description here人一 img2 的归一化虹膜:enter image description here

此示例的汉明距离约为 29000(这是我得到的最小距离,在大多数情况下,同一个人虹膜的距离约为 30000 - 31000)不同人的汉明距离约为31000(取决于测试图像)

最佳答案

我仅通过实现 Daugman 的论文等中的算法/数学就成功地做到了这一点。我的建议是实际可视化 gabor 核以找到有意义的参数组合,例如 sigma 和 lambda。我没有使用 OpenCV 的 GetGaborKernel,而是使用了一个手工制作的。

关于java - 将虹膜图像与 opencv 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com