Bea*_*ker 5 c++ vector-graphics pattern-matching
有没有人知道一个好的模式匹配/识别库在C++(oss首选)能够检测向量列表是箭头还是其他类?
我已经知道OpenCV,但这是用于光栅图形(或者我错过了什么?)...但我已经有了矢量几何,将它们转换回光栅图形听起来很奇怪,你必须检测到它边缘再次.
所以我需要的是一个库,它使用矢量列表作为输入而不是光栅图形,并且可以识别矢量是否是箭头(独立于方向)并提取箭头的部分(头部/尖端/尾部等). ).
谁知道这样的lib或者有提示在哪里寻找这种问题(算法等)?
我尝试改变UI的使用方式.我已经尝试过量角器算法并将识别步骤分成不同的部分,例如箭头示例:
但我想在所有矢量线(无论顺序和方向)的一个步骤中完成此操作.有什么建议吗?
如果第一个是具有角度的折线并且还有对插入符号的识别但后续符号系统需要在它们之间做出决定呢?
我想绘制命令,而不是在负担很重的菜单中搜索它们.但重要的是检测图形的部分(例如中心线,左线,......)并尽可能保持纵横比(尺寸),这意味着也应保持关键坐标(例如箭头).这对于用校正的标准图形替换手绘矢量很重要.
这是否可以将lib作为单个任务,或者我应该保持当前分别识别每条折线并查看输入顺序的概念(例如,第一行必须是方向)?
你可以在这里看到一个想法:http://depts.washington.edu/aimgroup/proj/dollar/ 有1美元的识别器算法和一些派生的算法,你可以在网上试试.
问题是,我的"命令"由多行组成,并且每行在上下文中可能具有不同的特殊含义以获得完整的图形.我已经知道的算法和库(如上面的$ 1识别器)与单个手势更相关,而不是多个手势输入的复杂顺序,如果将其解释为整个草图,则获得精确的含义.
我认为继续单独解释每一行而不是将其置于整个背景中(认识整个草图)可能导致死路一条.但也许混合方法可能会得到它.
现实生活中的比较:就像有人画马一样.如果他刚刚开始绘制第一条线,你就不会说这是一匹马 - 你需要更多的输入,例如4条腿等.
(嗯,我知道不是每个人都画画好,有些马看起来像牛......但无论如何,这应该让你知道我的意思.)
任何提示?
更新:我在这里发现了一个接近问题的视频.缺失的链接是在识别之后如何访问结构的部分,但这也可以在单独的步骤中完成(在知道图纸显示之后).
以我的愚见,我认为没有一个图书馆可以满足这种特定的需求。最后,您将编写自定义代码。
无论哪种方式,您要做的第一件事就是从检测到的每个手势中提取分类特征。然后,您必须将获得的特征向量放入特征空间中。一旦你这样做了,你实际上可以做一百万件事,以便将特征向量分类到可用的类别之一(例如,箭头、三角形等)。例如,您提供的链接中华盛顿大学的人员正在步骤 1,2 和 3 中进行特征提取,并在步骤 4 中对获取的特征向量进行分类。
将手势分解为子手势的想法听起来很诱人,尽管我怀疑它会以多种方式引入问题(例如,如何检测子手势的结束和下一个子手势的开始),并且它将还会带来很大的开销,因为您最终会执行额外的步骤并且缺少决策树结构。
我上面忘记提到的另一件事是,您还需要创建一个合理大小的训练数据集,以便训练您的分类器。
我不会陷入建议库、分类器、线性代数包等的麻烦,因为这首先超出了范围(即,我建议在网上搜索特定组件,以帮助您构建您的应用)。