今天是Python改变生活系列的第一篇,也是一个与你们有关的问题案例

前情提要

了解我的小伙伴可能都知道,小五经常给大家送书。最近一年,不算联合抽奖送书,单独我自购+出版社赞助已送出1000本书籍。

如果是自购的话,还需要自己联系快速小哥寄出书籍。

寄出后快递小哥会给我截图来反馈,然而我想要单号的时候就遇到问题了。

每次寄完书,我都只能得到n个截图(内含快递信息)。

为了及时反馈大家物流信息,我需要尽快将快递单号提取出来。

思考解决办法

每次大概都有十几到几十张截图,手动去识别真的太麻烦。

不如先看看每张截图大概是什么样子,再去想想批量处理的办法吧。

主要是为了批量获取图片中的快递单号,我想到了两个解决办法:

  1. 用python识别条形码来直接获得准确快递单号

  2. 用python调用ocr,识别截图中的快递单号文字

大家觉得哪个更简单更准确呢?

今天我先聊聊第一种方法的流程和踩坑经历。

遍历图片

首先,第一步需要先获取文件夹中的所有截图,再依次进行条形码识别。

具体操作可以参考注释

import osdef get_jpg():jpgs = []path = os.getcwd()for i in os.listdir(path):  #获取文件列表if i.split(".")[-1] == "jpg":  #筛选jpg文件(截图)oldname=os.path.join(path,i)  #旧文件名i = i.replace('微信图片_','')newname=os.path.join(path,i)  #新文件名os.rename(oldname,newname)  #改名jpgs.append(i)return jpgs
复制代码

上面的代码中除了遍历筛选图片,还涉及了改名的操作。

这是因为我在后面使用 opencv 时,打开的路径只要含有中文就会一直报错,于是我就干脆把截图名称里的中文去除。

执行构建的get_jpg()函数,得到

这些就是演示文件中的四个截图文件,下面开始对他们进行识别。

识别条形码

python的第三方模块 pyzbar 可以很方便地处理二维码的识别。我们这次用它来识别一维条形码的话,用法也大致一样。不过还要搭配 cv2 使用,主要是为了利用cv2.imread()来读取图片文件。

注意:对于cv2模块,安装时需要输入pip3 install opencv-python,但在导入的时候采用import cv2

识别条形码的具体语句如下所示:

import pyzbar.pyzbar as pyzbar
import cv2def get_barcode(img):image = cv2.imread(img)barcodes = pyzbar.decode(image)barcode = barcodes[0]barcode_data = barcode.data.decode("utf-8")return barcode_data
复制代码

上面构建的get_barcode()函数可以实现识别条形码,并返回结果数据。

我们可以用for循环遍历前文获取的所有图片,再依次使用get_barcode()函数来识别条形码。

data_m =[]
for i in jpgs:data = get_barcode(i)data_m.append(data)
data_m
复制代码

可以发现,成功识别了四张截图里的条形码,并获取了对应的快递单号。

小结

回顾今天的问题案例,我先通过思考想出了两种解决办法。第一种的优点是识别条形码比OCR更准确,但是其只获取了快递单号。后续在给获得赠书的同学反馈时,我还需要手动将名字和单号对应,不够偷懒。后续将给大家介绍第二种方法的流程和优缺点。

如果想看更多python改变生活的真实问题案例,给本文右下角点个赞吧。

如果你也有一直想用python解决的问题,欢迎在评论区告诉我

Python改变生活 | 轻松识别数百个快递单号相关推荐

  1. Python改变生活 | OCR识别的花样使用

    这是Python改变生活系列的第四篇,在上文Python改变生活 | 轻松识别数百个快递单号_中讲了一个需求的解决办法,即用python识别条形码来获取快递单号. 该问题我一共想了两个方案,所以今天接 ...

  2. Python识别快递单号(条形码识别、字符识别,Tesseract-OCR)

    #识别快递单号 这项目大概是流水线上识别快递上的快递单号.尝试了解条形码的基本知识 我从这博客的三篇博文中很好的了解了识别条形码的相关知识--moverzp的博客 百度百科:条形码 条形码(barco ...

  3. 快递查询(快递单号智能识别/快递公司+快递单号)-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口

    更多资料请参考:www.woyaocha.net/product/express 查询说明 接口一:快递单号智能识别 快递单号智能识别,是根据查询的快递单号自动智能识别出该运单所属的快递公司,再获取快 ...

  4. Python实现圆通快递单号查询官方接口教程

    此系列为代码语言与各大常用快递公司的接口教程,供各位程序员学习参考,后续我将会继续分享各语言的快递单号查询接口教程,敬请关注. 下面我们来说下具体操作过程,如何用Python实现圆通快递单号查询. 一 ...

  5. 使用 Python对接快递鸟快递单号查询api接口查找快递信息

    源码地址:GitHub - iGordongwb/kdniao: 根据快递单号查找快递信息 接口源码包示例图: 快递单号识别api接口 使用工具: python3 快递鸟api 快递鸟官网 api文档 ...

  6. python 菜鸟联盟快递查询_快递单号查询接口-极兔速递

    前言 看完快递鸟api极兔快递对接教程这篇文章,然后把源码复制到你的项目上,就能快速完成极兔快递接口对接.更适合刚入门的菜鸟,调用快递鸟的极兔快递查询API接口,能查询到极兔快递单号从收件.运输,到转 ...

  7. php 正则快递单号,正则表达式校验百世快递运单号

    百世快递运单号规则 第一种:一位字母+12位数字,字母只能是ABDESs中的一个 第二种:BXA+10位数字 第三种:K8+11位数字 第四种:000+10位数字,三个数字0 . 第五种:02+11位 ...

  8. 怎样同时查询百世多个快递单号的物流信息并保存

    如何在电脑上批量查询多个百世单号的物流信息,并将查询到的信息以导出表格的形式保存到电脑上呢?接下来随小编一起来操作. 批量查询百世物流 运行快递批量查询高手,点击"添加单号"功能 ...

  9. ECSHOP和SHOPEX快递单号查询百世快递插件V8.6专版

    发布ECSHOP说明: ECSHOP快递物流单号查询插件特色 本ECSHOP快递物流单号跟踪插件提供国内外近2000家快递物流订单单号查询服务例如申通快递.顺丰快递.圆通快递.EMS快递.汇通快递.宅 ...

最新文章

  1. Python数据处理入门教程!
  2. mongodb 结果二次调用_mongodb慢查询记录
  3. 【转】ActiveMQ消息传送机制以及ACK机制详解
  4. React Nativi 参考文章
  5. 树莓派:树莓派的刷机和登录,以及更新新版vim方便使用
  6. gan简介_GAN简介
  7. J - Borg Maze
  8. navicat 官方使用手册,中文版,快捷键大全
  9. 马斯克脑机接口_如何看待“马斯克:脑机接口或一年内植入人脑,可修复任何大脑问题”?...
  10. Oracle笔记:用户、权限及exp/imp数据
  11. HTML段落前面怎么加黑点,Word文档段落前面的那个小黑点,是怎么搞出来得呀?...
  12. 数据报表、数据分析、数据挖掘和商业智能,是什么关系?
  13. 黑盒测试用例编写八大方法
  14. 头文件中,#include使用引号“”和尖括号有什么区别?
  15. 项目总结(二) 网格化管理系统问题总结
  16. centos mysql 5.2.3 编译安装_在CentOS上编译安装MySQL 5.7.13步骤详解
  17. Libevent 学习七:Libevent 两个实例
  18. linux实训报告内容一万字,Linux实训报告.doc
  19. 统计图配色方案_填充
  20. hdu 1455 java_hdu 1455 Sticks

热门文章

  1. map平均准确率_MAP(Mean Average Precision)
  2. cufflinks基于dataframe数据绘制线图(line plot)、散点图(scatter plot)
  3. R卡方独立性检验(Chi-Square Test of Independence)
  4. 从RBM(受限玻尔兹曼机)开始、到深度信念网络(DBN)再到自动编码器(AE)
  5. mysql buffer size_优化mysql之key_buffer_size设置
  6. 图像浏览软件_FastStone Image Viewer5.5版
  7. 数字图像处理- 3.4 空间滤波 and 3.5 平滑空间滤波器
  8. STM32-USART接收程序
  9. 中科大计算机专硕英语,211科班一战394上岸中科大软院专硕2021
  10. mysql常用linux命令大全_Linux-MySQL常用命令(示例代码)