在我們要寄出去許多快遞包裹時,為了能及時溝通物流詳情,要迅速將物流單號分離出來。這時候用手動式去鑒別確實太麻煩了,因此本文用Python完成簡單鑒別數百個物流單號,所需的可以了解一下
小伙伴們好,我是大五
這也是Python改變未來系列第三篇,是一個和你們相關的難題實例。
前情提要
掌握我的好朋友很有可能都清楚,阿浩常給大伙兒送書。近一年,算不上協同抽獎活動送書,獨立我自買+出版社出版冠名贊助已送出去1000本書本。
假如是自買得話,還要自身聯絡迅速小伙寄出去書本。
寄出后快遞小哥會給我截圖來反饋,然而我想要單號的時候就遇到問題了。
每次寄完書,我都只能得到n個截圖(內含快遞信息)。
為了及時反饋大家物流信息,我需要盡快將快遞單號提取出來。
思考解決辦法
每次大概都有十幾到幾十張截圖,手動去識別真的太麻煩。
不如先看看每張截圖大概是什么樣子,再去想想批量處理的辦法吧。
主要是為了批量獲取圖片中的快遞單號,我想到了兩個解決辦法:
用python識別條形碼來直接獲得準確快遞單號
用python調用ocr,識別截圖中的快遞單號文字
大家覺得哪個更簡單更準確呢?
今天我先聊聊第一種方法的流程和踩坑經歷。
遍歷圖片
首先,第一步需要先獲取文件夾中的所有截圖,再依次進行條形碼識別。
具體操作可以參考注釋
import os def 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模塊,安裝時需要輸入pip3installopencv-python,但在導入的時候采用importcv2。
識別條形碼的具體語句如下所示:
import pyzbar.pyzbar as pyzbar import cv2 def 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更準確,但是其只獲取了快遞單號。后續在給獲得贈書的同學反饋時,我還需要手動將名字和單號對應,不夠偷懶。后續將給大家介紹第二種方法的流程和優缺點。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128803.html
摘要:需要的數據就是這個快遞軌跡,看到上面的好像沒什么問題,挺容易的,這還有什么比這爽的,趕緊使用請求一波。由于說過了,就不多說了,突破了繼續刷新也會遇到一些未定義的,也是同樣扣代碼,就不多說了,這里說另一個。 原本昨天就要發文章的了,由于之前的pdd文章被投訴了,刪除了,影響心情的同時也不敢亂發文章了,所以就暫時歇了一天,也改了另外一個網站,就是今天的物流網站。如果大家某天看不到我發文了,...
摘要:最近雙十一過后,每天不是拿快遞就是去拿快遞的路上,翻開手機應用里的菜鳥裹裹查看快遞是很方便的,當我在微信端搜索菜鳥裹裹小程序時,卻沒有發現,于是便想自己動手仿版寫一個菜鳥裹裹的小程序,對其中的快遞查詢物流跟蹤很有興趣。 新手寫小程序并不簡單,這是我的第一次嘗試學習到了很多。最近雙十一過后,每天不是拿快遞就是去拿快遞的路上,翻開手機應用里的菜鳥裹裹查看快遞是很方便的,當我在微信端搜索菜鳥...
摘要:最近雙十一過后,每天不是拿快遞就是去拿快遞的路上,翻開手機應用里的菜鳥裹裹查看快遞是很方便的,當我在微信端搜索菜鳥裹裹小程序時,卻沒有發現,于是便想自己動手仿版寫一個菜鳥裹裹的小程序,對其中的快遞查詢物流跟蹤很有興趣。 新手寫小程序并不簡單,這是我的第一次嘗試學習到了很多。最近雙十一過后,每天不是拿快遞就是去拿快遞的路上,翻開手機應用里的菜鳥裹裹查看快遞是很方便的,當我在微信端搜索菜鳥...
摘要:最近雙十一過后,每天不是拿快遞就是去拿快遞的路上,翻開手機應用里的菜鳥裹裹查看快遞是很方便的,當我在微信端搜索菜鳥裹裹小程序時,卻沒有發現,于是便想自己動手仿版寫一個菜鳥裹裹的小程序,對其中的快遞查詢物流跟蹤很有興趣。 新手寫小程序并不簡單,這是我的第一次嘗試學習到了很多。最近雙十一過后,每天不是拿快遞就是去拿快遞的路上,翻開手機應用里的菜鳥裹裹查看快遞是很方便的,當我在微信端搜索菜鳥...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02