识别快递单号(1) - 图像处理

项目中需要实现快递单号的录入,考虑了两种方案:手机拍照上传服务器进行识别和开发混合App进行本地识别。文章介绍了图像处理在识别中的重要性,并引用了参考资料,探讨了基于直方图的图像全局二值化算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言: 

   最近一个项目要发快递, 发完以后需要把单号录入后台. 暂时想到两方案:
  1. 手机拍照上传服务器, 服务器识别. (优点 不用开发手机端; 缺点 费流量, 虽然手机画质调最小一张照片也就100k)
  2. 做手机混合App, 手机端识别. (优点 省流量, 更便捷; 缺点 仅会一点Android, 苹果完全没玩过)

Anyway, 先把图像识别做出来, 其他都好说. 因为各个快递公司条码编码方式不同, 图像识别也有两种方案:
 1. 识别条码. (优点 识别简单; 缺点 需要学习多种编码方式)
 2. 识别条码下方数字单号. (优点 直接; 缺点 需要进行机器学习, 不过应该不难, 毕竟都是打印的数字)

大概流程是这样的: a. 获得照片(一般是快递单条码的特写), b. 找到识别部分(条码或单号), c. 识别.
ac暂且不说, 先做做b.

这个系列是我一边做一边写的, 所以并不能保证写的步骤, 代码就一定没问题没Bug, 有些东西可能在以后的博文中会有所调整.

  转载请声明出处: http://www.cnblogs.com/zaiyuzhong/p/purify-photo.html

正文:

一. 图像二值化
  我首先想到的就是这个, 因为条码和单号都是黑色, 快递单又是多层的, 下层的单号很容易就透上来了.
  1. 用RGB平均值将图片灰度化; (与人眼无关不需要用加权平均, RGB最大值得出图像偏亮)
  2. 因为拍照环境的光线问题, 使用的OTSU算法不能很有效的去除手机遮挡光源产生的阴影, 所以我没有取1/2点作为阀值.
  测试几张图片后发现1/2.1~1/2.5之间效果较好, 于是取1/2.3, 这个需要再多一些图片做测试, 但是我准备换个算法.

          (白色块是后补的, 位置稍微不同别介意, 绿色边框是CSS)

  测试了一些算法发现Yen算法效果最好(测试图片有限, 没有代表性), 如下图:

  具体算法见参考资料.

二. 去除多余图像
  这一步我也不确定应该做什么, 首先想到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值