牛奶盒喷码字符识别(基于opencv)————(二)投影法字符分割

牛奶盒喷码字符识别(基于opencv)————(二)投影法字符分割

效果:

由于图片横纵坐标分明,故可采用投影法进行切割
老规矩线上图:

在这里插入图片描述
在这里插入图片描述

要做到切割准确率高,给大家做以下难点分析:(避坑指南)
1.比如20和55这些数字挨得太近,导致会识别成一个字符
2.如果最下一行有黑像素或者最右一列有黑像素,会切割失败,是源算法小缺陷
3.膨胀不能太多,不然会导致第一行第二行无法区分

源代码参考博客:

https://blog.csdn.net/Tuzi294/article/details/79959199

以下是我的改进:

1.对于20,55的分割

可以看到 源代码在对于20,54的处理上直接分割,输出end_j-star_j之后发现,着切割失败的三组数有明显的特征,那就是end_j-star_j大于100了,所以我们稍加判断(注意逻辑,有点打脑壳)
+8 是个经验数值,使我的分割更好
注意除法需要浮点型,所以/2.0
注意像素不能为浮点型,所以需要使用 math.floor取整
使用math 记得 import math
在这里插入图片描述

 elif(data[start: end, j].all() and start_j >= 0):
            if(end_j - start_j >= min_val_word and end_j - start_j<100):
                print(end_j - start_j)
                tmp = data[start:end, start_j: end_j]
                im2save 
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值