C++ 如何识别简单的笔迹形状?
我有一组简单的形状(见下图),我想识别手写形状,并找出它可能在该组中的形状 有什么简单的算法可以做到这一点吗?或者任何开源库 顺便说一句,我的任务很简单,所以我不使用像OpenCV这样太复杂的库 提前谢谢 这是一个老项目,但可能与您正在寻找的内容一致 需要OpenCV,但正如评论员所指出的,学习它可能是值得的。这是一个老项目,但可能与您所寻找的内容一致C++ 如何识别简单的笔迹形状?,c++,c,open-source,image-recognition,C++,C,Open Source,Image Recognition,我有一组简单的形状(见下图),我想识别手写形状,并找出它可能在该组中的形状 有什么简单的算法可以做到这一点吗?或者任何开源库 顺便说一句,我的任务很简单,所以我不使用像OpenCV这样太复杂的库 提前谢谢 这是一个老项目,但可能与您正在寻找的内容一致 需要OpenCV,但正如评论员所指出的,学习它可能是值得的。这是一个老项目,但可能与您所寻找的内容一致 需要OpenCV,但评论家指出,学习它可能值得你花时间。 < P>我不知道如何在C或C++中完成,但是算法很简单。请注意,成功率会随着每个角度添
需要OpenCV,但评论家指出,学习它可能值得你花时间。
< P>我不知道如何在C或C++中完成,但是算法很简单。请注意,成功率会随着每个角度添加到形状而降低,因此这对于识别您上面给出的基本形状集应该是有好处的,但不会有太多其他方面当然,完全精确的匹配永远不可能实现。我甚至无法判断你的第二个例子是倾斜的平行四边形还是倾斜的正方形(或者菱形或矩形)。C++中,我不知道如何做它,但是算法是简单的。请注意,成功率会随着每个角度添加到形状而降低,因此这对于识别您上面给出的基本形状集应该是有好处的,但不会有太多其他方面
当然,完全精确的匹配永远不可能实现。我甚至不知道第二个示例形状是倾斜的平行四边形还是倾斜的正方形(或菱形或矩形)。这本质上是线检测 它只适用于直线形状,绝不简单。
假设您的图形中有k条线段,使用k-means算法将点聚合为直线。
首先将点随机分为若干组。
对于这些簇中的每一个,计算点所逼近的直线。(到各点的所有距离之和最小的线)
离群值(离直线最远的点)应重新分配到其他更适合它们的聚类中。
重复上一步,直到达到某个阈值
如果未达到所需的阈值,则可以尝试不同的K值
如果您确实到达了一个点,那么您可以计算这些线的交点,并提取将不规则形状与规则形状匹配所需的其他属性。
你可以用这种方法区分三角形和正方形,正方形和平行四边形,但这非常复杂。
这种“算法”可以适用于曲线、虚线或线不相交的形状,因此它相当健壮这本质上是线检测
它只适用于直线形状,绝不简单。
假设您的图形中有k条线段,请使用k-means算法聚合poin