我想识别在屏幕上绘制的圆形,三角形和矩形等形状。我的主要目标是用户在屏幕上绘制形状,我需要一个代码来识别这个形状。我该怎样处理这个问题?< / p>
答案 0 :(得分:1)
你想要实现的目标可能非常棘手,但我刚刚实现了类似的东西,这就是我使用的方法:
a)如果它的纵横比接近正方形,则只需裁剪周围的空白区域并将其放大,使其与数据库图像的大小相同
b)否则,它很可能只有一个尺寸大约是另一个尺寸的两倍,在这种情况下你裁剪白色空间,旋转它以获得高度作为它的最大尺寸,将其放大到256x128然后添加在两侧64 px的空白区域。
鉴于上述算法有点耗费资源,您可能会考虑在某处使用服务器,这可以进行实际比较,特别是如果您想在数据库中添加许多图像。由于我已经为演示应用程序实现了这个算法,我已经可以告诉你,你将不得不做很多像素操作。此外,使用Android SDK旋转图像可能很烦人,因为它会改变图像尺寸...
如果你有冒险精神,这里有几篇论文描述了解决这个问题的最先进算法:Greg Mori,Serge Belongie和Jitendra Malik(2001)的“Shape contexts enable efficient retrieval of similar shapes”和“{{3 “Remco C. Veltkamp(2001)。但数学可能有点沉重。
答案 1 :(得分:0)
您应该查看GestureOverlayView。 一个好的教程是:http://www.vogella.com/articles/AndroidGestures/article.html