您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python如何實現自動提取并收集信息的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python如何實現自動提取并收集信息文章都會有所收獲,下面我們一起來看看吧。
本功能目的在于提取收據/發票上的信息,用機器代替人的方式,提高工作效率
實現方式是通過cv2模塊截取需要的信息,調用百度的api文字識別接口
1.導入需要的庫,包括百度的api接口跟cv2圖像截圖圖庫
import cv2
from aip import AipOcr
# 讀取圖片,利用imshow顯示圖片
pic = cv2.imread(r'Y:cutimg1.png')
pic = cv2.resize(pic,None,fx = 0.5, fy = 0.5)
cv2.imshow('img',pic)
cv2.waitKey(0)
2.截取圖片,獲取需要的信息,包括以下信息
時間Time
商家business
商品goods
價格money
單號num
# 刪除不必要的部分
img = pic[210:500, 100:580]
# 截取各部分的文字
time = pic[400:430, 100:580]
business = pic[370:400, 100:580]
goods = pic[350:380, 100:580]
money = pic[210:300, 100:580]
num = pic[460:500, 100:580]
# 查看截取的部分是否合適
gener_name = ['time','business','goods','money','num']
excel_data = {}
pd_columns = ["a","b","c","d","e"] # 標題
3.定義函數將截取好的圖片另存到文件夾
def shotcut_image(args):
for index in gener:
cv2.imwrite('image/{}.png'.format(args), img)
4.調用百度api接口,實現文字識別
# 導入api
AppID = '24177719'
API_Key = 'p8skmRYfHGoVGR4UU03Q5jiM'
Secret_Key = 'dyM0tzSILBZu9CFqZ7IkjWwECGaws4xo'
cilent = AipOcr(AppID,API_Key,Secret_Key)
def get_words(img_name):
with open('image/{}.png'.format(img_name), 'rb') as f:
result = cilent.basicAccurate(f.read())
return result
5.最后將信息轉為Dataframe,利用pandas的to_exccel功能,將數據放到excel里面
def convert_to_dataframe(words):
# 構建dataframe
result = words['words_result']
for word in result:
excel_data.setdefault('a', []).append(word['words'])
# 將所有words讀取后,取出語句存入excel
def convert_to_excel():
frame = DataFrame(excel_data, columns=pd_columns)
# todo 表頭需要額外處理,這里指定不設置表頭
frame.to_excel('out.xls',index=False, header=False)
關于“Python如何實現自動提取并收集信息”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python如何實現自動提取并收集信息”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。