WPF InkCanvas - 如何确定它是否已“签名”

时间:2009-07-02 20:10:15

标签: wpf ocr pattern-recognition inkcanvas icr

我正在使用WPF InkCanvas控件来捕获Tablet PC应用程序中的签名。

我的一个要求是验证应用程序是否真的已经“签名”。现在我通过检查InkCanvas的Strokes集合来做这个 - 如果有0个笔画,那么我知道用户没有“签名”。

但是,如果用户输入单个斜杠,或者甚至是单个点,则计为笔划,我的验证测试将通过,即使签名不是真的有效。

有关如何为此建立更好的测试的任何想法?当然,有效签名的用例非常模糊,但我想尝试消除明显不好的签名。

或者这种方式根本无法解决?

1 个答案:

答案 0 :(得分:1)

我知道有一些算法可以测试签名是否是现有签名的有效匹配,例如here概述的签名。然而,首先发现某些东西是否是签名似乎要复杂得多。

来自维基百科:

  

在法律文件上,文盲签字人可以制作“标记”(通常为“X”,但偶尔也是个性化的符号)   
...
  其语言使用字母以外的书写系统的几种文化本身并不共享签名的西方概念:一个人姓名的“签名”导致书面产品与标准方式“书写”一个人的名字的结果没有什么不同。对于这些语言,写入或签名涉及相同的书写字符。三个这样的例子是中国人,日本人和韩国人。

虽然可以使用Intelligent Character Recognition来解决这个问题,但我也知道我的签名很少看起来像是有任何字符。如果我使用其中一个UPS或FedEx包装唱歌垫,情况会更糟。下次一个包裹到货时虽然我会尝试只用短划线和一个点进行签名,看看是否允许它(我认为它会允许它,因为它已经足够接近了)。

由于签名可能与任何可识别的单词或字符不匹配,尝试进一步“验证”它,然后您当前可能实际上丢弃了一些有效的签名。如果由于某种原因你仍然需要知道是否还有一个点,那么请看一下验证,即签名填充一定大小的矩形。这仍然可能使不应该的结果无效,因此如果您尝试向其添加任何验证,请确保完全记录有效签名的期望。