设计自己的手写体训练集 opencvsharp

0、引子

之前用的是系统的手写体文件进行学习,但测试后发现,无论是用knn还是ann,在识别我自己的手写体方面总是识别率超低,基本是10%。查阅资料后发现,老外的数字书写顺序和我们不同,故设计下自己的训练集。

1、主要思路

(1)用autoCAD设计好1cm的格子,形成29*20的格,然后打印,手写。

(2)用红色圆珠笔写字:原因,要识别的是红色圆珠笔写的;打印进纸时无法保证正直,要去除横竖线。

(3)扫描,得到图片a

(3)程序处理:提取字体,横竖对齐,并去除外围干扰。

(3.1)加载图片后将图片转成hsv,然后设定范围为红色,提取字体

(3.2)用Dilate扩大字体范围(膨胀)

(3.3)用Threshold二值化处理,得到图片b

(3.4)用FindContours查找字体边界

(3.5)用Cv2.ArcLength查找所有的字体边界,去除边界周长太小的边界;循环操作所有边界。

用 Cv2.MinAreaRect判断外接正矩形,判断该矩形中心是否和已有的矩形中心太近,如太近,合并矩形,否则认为是正常字体,用DrawContours绘制字体边框进行人工判断程序参数的合理性。

(3.6)用Cv2.Rectangle绘制该正确的外接矩形,显示外接矩形进行人工判断

(3.7)将所有字体外接矩形以y坐标为主序,x坐标为次序,做排序。

(3.8)根据排序后的矩形,分别从图片a和b中提取字体,顺次放到一个背景为黑色的图片中。

完工。

原始图片如下:

查找边界,人工判断的图片如下:

规整化之后的图片如下:

(此图片用的是imshow,无缩放;上面两张图片用的是picturebox,有缩放)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

健忘的松鼠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值