我的用户使用触摸事件在我的应用程序中绘制他们的签名,然后将其转换为位图。我想提取每个签名的唯一规范,并根据存储在主服务器中的规范进行比较。
我该怎么做?
提取签名的唯一功能的主要算法和企业算法是什么?
提前致谢,
答案 0 :(得分:19)
我不是计算机视觉专家,但作为一名研究生,这听起来像是你正在寻找的功能提取。首先想到的是SIFT(尺度不变特征变换)。此算法允许您将原始签名的存储特征与副本进行比较,并识别具有高精度的匹配,即使在缩放或旋转样本的情况下也是如此。
通过简单的Google搜索,您可以找到许多学术论文,例如this one或this one,这些论文与使用该算法进行签名/生物识别专门相关。
在此Stack Overflow Article中讨论了将OpenCV与SIFT一起使用。
如果有更好的视觉算法,我不知道哪个特别适合这个问题,我鼓励社区加入。
答案 1 :(得分:3)
尝试查看使用神经网络进行手写识别的this resource。尝试查看this resource too,其中显示了如何识别手写数字。这两个项目都有完整的源代码。
答案 2 :(得分:1)
有一个类似的问题:Bitmap (of a signature) comparison in c#
我还在channel9 http://channel9.msdn.com/coding4fun/blog/Contour-Analysis-for-Image-Recognition-in-C
中找到了一篇文章它需要创建复杂的逻辑,有各种产品可用于签名验证和识别,我发现以下代码用vb 6.0编写,可能会有所帮助: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=38215&lngWId=1
简而言之,它需要付出很多努力,因此您可以询问客户是否通过指定一些独特的代码或问题来满足“签名匹配”的要求。
答案 3 :(得分:0)
你可以在一个字节数组中转换图像,将其发送到你的服务器并做你想做的任何事情。
接下来,我将提供一些可以使用的解码和编码方法的提示和技巧
这里有一个问题Decode byte array to bitmap that has been compressed in Java关于如何解码字节数组
使用以下提示从位图创建字节数组:http://www.anddev.org/advanced-tutorials-f21/how-to-convert-bitmap-to-byte-array-in-android-t12985.html
希望这有帮助, Arkde
答案 4 :(得分:0)
几年前,我做过手写识别系统。根据我在该项目工作期间获得的经验,我会给您打电话,不要将签名转换为图像,而是收集笔接触屏幕的点集并按时间戳排序。处理这些要比处理签名作为图像要容易得多。
如果有人会跟随您的脚步,建议您阅读一些有关在线/离线手写识别的信息