在iphone上画画

Posted

技术标签:

【中文标题】在iphone上画画【英文标题】:drawing on iphone 【发布时间】:2010-07-28 12:30:52 【问题描述】:

我正在尝试为儿童开发一个 iPhone 应用程序,该应用程序将能够通过触摸在屏幕上绘制字符,我想知道如何将绘制的字符与字母表中的好字符相匹配。我将如何比较两种形状(绘图和现有) 任何的想法?? 一些代码?

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

Using GLGestureRecognizer 您可以创建一个目录,它会根据您预定义的“字母”计算输入点数组之间的度量。

GLGestureRecognizer 是一个 Objective-C 1 美元 Unistroke 的实施 识别器,一个简单的手势 识别算法(见学分 以下)。它在此处提供 iPhone应用程序的形式 项目。它是在 几个晚上的课程 2009 年 4 月,作者:Adam Preble。

一个演示 iPhone 项目 (Gestures.xcodeproj) 提供;一种 UIView 子类接收触摸事件 并将它们发送到 GLGestureRecognizer 类同时 用白色画出触摸的路径。 手势完成后, 重新采样的手势以绿色显示, 它的中心在红点,连同 最佳匹配的名称,得分 (越低越好)和手势 方向。样本量 16 示例中使用了点,其中 似乎足以满足非常基本的需求 形状。

【讨论】:

非常酷,它可以很好地重新创建您的手势。它可以很容易地用于字母表【参考方案2】:

哇,这听起来是一项艰巨的任务。我想到的一种可能性是使用支持向量机。

1.) 生成绘图图像并通过将矢量附加到用户绘制的路径来“矢量化”它。

2.) 您需要支持向量进行比较。我要做的是,实施一个“培训应用程序”。让一些孩子画画(例如 10 次 A,10 次 B,aso...),将向量放入数据库并将它们用作支持向量。

3.) 您需要一个评分算法,通过将用户绘图与支持向量进行比较来对其进行评分(这可能是其中最有趣的部分)。我可以考虑测量支持向量起点和终点到绘制向量的距离。距离最短的 svm 是你取的字母。然后你可能会引入一个距离,即“边界”,并将此边界之上的所有用户绘图视为无法识别。

第二种方法可能是您生成带有字母的图像(例如,白色背景和黑色字母(非抗锯齿))。您再次生成用户绘图的图像并将其调整为要比较的图像,试图准确地“重叠”它。然后计算两个图像中匹配的黑色像素,并取出匹配最多的字母。

但是,由于我实现了类似的东西,我可以说 svm 方法更令人满意,因为如果结果不够好,您可以添加支持向量。精髓肯定是您的评分算法。

总之听起来像是几个星期的工作。

编辑:由于这是一个有趣的领域,我做了一些研究并找到了一篇关于手写识别的论文。看看这个:http://risujin.org/cellwriter/。它基本上描述了我提到的 svm 方法,并提供了一些可能对您有所帮助的算法。

【讨论】:

【参考方案3】:

您始终可以使用Gesture Recognition...,但对于这样的自定义场景来说,这非常困难。

否则,您可能会在Quartz 中找到至少可以为您完成部分工作的内容。我很想看看你是如何解决这个问题的。这听起来像是一条相当困难/有趣的道路。

【讨论】:

以上是关于在iphone上画画的主要内容,如果未能解决你的问题,请参考以下文章

仅在 iphone 11 上显示 UI 图像在其他 iphone 版本上隐藏

在 iPhone 上安装 iPhone 应用程序

iPhone 上是不是存在 Core Data?或者您将如何在 iPhone 上保存数据?

在横向屏幕上旋转不是 iPhone 5 和 iPhone 6 上的视图

怎么让iphone上显示的东西 在MAC上显示

专为 iPhone 5 设计的应用程序,在 iPhone 4S 上显示部分剖视图