opencv#4 手写体识别:自建训练集完美

一直在研究手写体识别,最终的目标是识别自己写的数字,目前能正确识别我自己写的字,识别率达到98.62%,可以识别自己的大小不一字体。学习例程如下:

1、学习opencv的自带手写体识别例程,发现无法识别自己的手写体

2、找到资料,有人说是中西方人写数字习惯不同(现在回顾应该不是唯一原因),思考做自己的手写体训练集

3、确定思路:A4纸打格子,打印,用红色圆珠笔写数字,自己写7页,女士写1页。扫描

4、思考如何去除格式,认为应颜色识别,边缘检测,排序,提取,字体大小标准化。

5、从GitHub上找到了一个opecv# 3的例程,一个一个例程研究代码,补充知识。

6、实现训练集文件处理的代码

7、根据自己的训练集文件进行knn测试,修改k的数值,保留识别率最大的k数值。

8、裁一些大小不一的数字,进行单个识别,完成了待识别的图片的标准化程序,完成最终工作。

原始的扫描训练集合文件如下:

生成训练集文件如下:(数字图片进行了排序,位置发生了变化)

此一步训练测试knn识别率达到98.62%

从测试文件中随机裁了几个图片识别,图片如下:

单独识别:完全正确识别。 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: OpenCV是一个开源的计算机视觉库,可以用于图像处理、机器视觉和模式识别等领域。对于手写识别问题,可以使用OpenCV进行处理和实现。 首先,我们需要准备手写体的训练数据集。可以通过手写的图片进行实验。在数据集中,每个手写都有一个对应的标签,例如0-9的数。 然后,我们需要将训练数据集加载到OpenCV中,并进行图像的预处理。这包括对图像进行灰度化处理、二值化处理和大小归一化等。灰度化和二值化可以帮助我们提取图像中的体信息,而大小归一化可以确保不同大小的体在处理过程中具有相同的特征。 接下来,我们可以利用OpenCV中的机器学习算法,例如支持向量机(SVM)或k最近邻(KNN)等,对预处理后的图像进行训练和分类。在训练过程中,算法会学习不同体的特征,并建立一个模型用于分类。 最后,我们可以使用训练好的模型对新的手写体进行识别。通过对输入图像进行与训练过程相同的预处理,并将预处理后的图像输入到已训练的模型中,即可得到预测的结果。 需要注意的是,手写识别是一个复杂的问题,准确率可能会受到多种因素的影响,例如图像的质量、体的风格和手写习惯等。因此,在实际应用中,可能需要进行进一步的优化和调整,以提高识别的准确率。 ### 回答2: 手写识别是一项利用opencv图像处理库的技术,用于识别手写的文。通过对手写体图片进行图像处理和特征提取,然后使用机器学习算法进行训练和识别,最终实现对手写体的自动识别。 首先,需要收集大量的手写体图片作为训练数据。这些数据应包含不同人的手写体,不同书写风格和体样式的文。 其次,对收集到的手写体图片进行图像处理。这包括图像去噪、二值化、轮廓提取等步骤。通过这些处理,可以对图片进行预处理,以便后续特征提取和识别。 然后,使用opencv提供的功能和算法对手写体图片进行特征提取。这些特征可以包括笔画数、笔画方向、每个笔画的起止位置和角度等等。通过提取这些特征,可以将手写体转化为数化的数据。 最后,使用机器学习算法对提取到的特征进行训练和识别。常用的机器学习算法包括支持向量机(SVM)、神经网络(NN)和随机森林(Random Forest)等。通过对训练数据进行学习,模型可以准确地识别并分类手写体。 总的来说,opencv手写识别是利用图像处理和机器学习相结合的方法,通过对手写体图片进行处理、特征提取和机器学习训练,实现对手写的自动识别。这项技术在文本识别、银行支票识别手写识别等领域有着广泛的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健忘的松鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值