在手机上以编程方式比较简单绘图模式

问题描述

enter image description here

我需要确认两个移动用户之间的同步,我想执行以下操作:第一个用户在屏幕上绘制一些图案(绘制一些具体的东西,如房屋或一些抽象线条)并且其他用户必须绘制相同的图片。

当然,生成的图形/ base64将永远不会相同,但是如何进行比较以了解这两种模式的相似程度?

示例:确认上下图相同

解决方法

对于我想做的一个问题,这是非常大的尝试,但是我会决定在某些方面着手进行此类工作:

您将必须确定许多相似的参数,例如:

  1. 2条线之间的偏移量是多少(就像您画的w一样,最后的笔画稍宽,所以太宽了)
  2. 大小重要吗? w和W相同吗?
  3. 图纸的位置重要吗?左上角的w和右下角的w是否构成相似的图像?两个相似的图形之间允许有多少距离。
  4. ABCDEFGHI与ABCDEFGH相似,允许有多少差异
  5. 不透明度很重要吗?你好与 hello 一样吗?从您的图形看来,您假设打招呼与 hello 相似。
  6. 形状重要吗?垂直的问好与水平的问好吗?

我将采用以下方法:

  1. 确定2个图形的起点(也许从最左端开始,并标识一个或多个独立图形,例如,周围有很多小圆圈)
  2. 相应地移动,并保留一个表示上述两点之间的差异的实体。

您的核心工作是移动和比较引擎,比较是在同一部分“方向”上进行的。比较圆形时可能会出现问题。但是,当方向变化大于特定程度时,您可以切换比较的对象(例如,超过30度会使您脱离该形状并移动以比较下一个对象)。

还必须考虑到有多个通往图纸的出口路线的情况,因此您将不得不启动另一个比较线程,同时保留一个表示已通过的实体的实体,以免进入无限循环。

这个故事的士气很高,而且没有简单易用的api可以为您做到这一点:)。

,

从我的角度来看,我认为您可以使用两种方法。 @Ali在回答中说的第一个,处理了很多参数,案例和很多意外的事情!

第二种方法,我更喜欢。

您说:

我需要确认两个移动用户之间的同步

我可以猜想您有这个应用程序的后端,并将当前图像传递到后端,并使用像Open CV这样的工具/库对其进行处理,以比较两个图像并测量相似度。因此,应用程序会返回类似度为 96%的结果。

最后,我认为这个问题太笼统了!

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...