在Python中找到最相似的形状

时间:2011-08-03 19:51:53

标签: python vector comparison virtual-keyboard n900

我正在使用虚拟键盘,类似于Swype(但对于不支持的平台)。基本上,它的作用(对于那些不熟悉的人)是你的手指在键上移动而不是为每个单词提起它。所以我需要做的是将绘制的形状与词表中每个单词的形状进行比较,并使用最相似的单词。我的问题是:我如何找到最相似的形状?

编辑:我尝试了$ 1识别器的Python实现,但是解析我的32,000字词列表需要将近7分钟。有没有办法可以加快速度(或者至少预先计算它)?以下是我用来生成它的内容:

self.keylayout = ["qwertyuiop","asdfghjkl;","zxcvbnm,."]
for i in wl:
    points = []
    for j in i:
        if j.lower() in self.keylayout[0]:
            points.append((40, self.keylayout[0].index(j.lower())*48+24))
        elif j.lower() in self.keylayout[1]:
            points.append((120, self.keylayout[1].index(j.lower())*48+24))
        elif j.lower() in self.kl[2]:
            points.append((200, self.keylayout[2].index(j.lower())*48+24))
    self.rec = Recognizer()
    self.rec.addTemplate(i, points)

2 个答案:

答案 0 :(得分:2)

过去曾写过这篇文章。一种稍微不同的方法,它非常快。希望它有所帮助..

http://krishnabharadwaj.info/how-swype-works/

答案 1 :(得分:1)

查看$1 Unistroke Recognizer in JavaScript。这是坏事。