当前位置: 首页 > news >正文

扶风高端企业网站建设手机系统优化软件哪个好

扶风高端企业网站建设,手机系统优化软件哪个好,淘宝客登记新网站,建设工程合同的概念每天面对成堆的发票,无论是税务发票还是承兑单据,抑或是其他各类公司数据要从照片、PDF等不同格式的内容中提取,我们都有必要进行快速办公的能力提升。因此,我们的目标要求就十分明显了,首先要从图片中获取数据&#x…

每天面对成堆的发票,无论是税务发票还是承兑单据,抑或是其他各类公司数据要从照片、PDF等不同格式的内容中提取,我们都有必要进行快速办公的能力提升。

因此,我们的目标要求就十分明显了,首先要从图片中获取数据,其次将数据统一导入到EXCEL中。

配置需求
1.ImageMagick : https://download.csdn.net/download/yyfloveqcw/87579790
2.tesseract-OCR : https://download.csdn.net/download/yyfloveqcw/87579801
3.Python3.7
4.from PIL import Image as PI
5.import io
6.import os
7.import pyocr.builders
8.from cnocr import CnOcr
9.import xlwt

分析上图发现票据金额为“贰拾万元整”,数据金额为大写中文,因此在导入Excel之前我们需要将金额票据的数据转换成数字的格式,基于此,我们需要首先完成大写汉字和数字的转换。

def chineseNumber2Int(strNum: str):result = 0temp = 1  # 存放一个单位的数字如:十万count = 0  # 判断是否有chArrcnArr = ['壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']chArr = ['拾', '佰', '仟', '万', '亿']for i in range(len(strNum)):b = Truec = strNum[i]for j in range(len(cnArr)):if c == cnArr[j]:if count != 0:result += tempcount = 0temp = j + 1b = Falsebreakif b:for j in range(len(chArr)):if c == chArr[j]:if j == 0:temp *= 10elif j == 1:temp *= 100elif j == 2:temp *= 1000elif j == 3:temp *= 10000elif j == 4:temp *= 100000000count += 1if i == len(strNum) - 1:result += tempreturn result

通过上述代码即可实现大写字母与数字的转换,例如输入“贰拾万元整”即可导出“200000”,再将其转换成数字后即可极大地简化表格的操作,也可以在完成表格操作的同时有利于数据归档。

接下来,我们需要分析发票的内部内容,分析下图可知,我们需要获取以下几个数据内容:“出票日期”、“汇票到账日期”、“票据号码”、“收款人”、“票据金额”、“出票人”,可以通过画图软件获取精准定位。

如图,小黑点即鼠标所在地,画图软件左下角即他的坐标。

  1. 提取出票日期
def text1(new_img):#提取出票日期left = 80top = 143right = 162bottom = 162image_text1 = new_img.crop((left, top, right, bottom))#展示图片#image_text1.show()txt1 = tool.image_to_string(image_text1)print(txt1)return str(txt1)
2.提取金额
def text2(new_img):#提取金额left = 224top = 355right = 585bottom = 380image_text2 = new_img.crop((left, top, right, bottom))#展示图片#image_text2.show()image_text2.save("img/tmp.png")temp = ocr.ocr("img/tmp.png")temp="".join(temp[0])txt2=chineseNumber2Int(temp)print(txt2)return txt2
3.提取出票人
def text3(new_img):#提取出票人left = 177top = 207right = 506bottom = 231image_text3 = new_img.crop((left, top, right, bottom))#展示图片#image_text3.show()image_text3.save("img/tmp.png")temp = ocr.ocr("img/tmp.png")txt3="".join(temp[0])print(txt3)return txt3
4.提取付款行
def text4(new_img):#提取付款行left = 177top = 274right = 492bottom = 311image_text4 = new_img.crop((left, top, right, bottom))#展示图片#image_text4.show()image_text4.save("img/tmp.png")temp = ocr.ocr("img/tmp.png")txt4="".join(temp[0])print(txt4)return txt4
5.提取汇票到账日期
def text5(new_img):#提取汇票到日期left = 92top = 166right = 176bottom = 184image_text5 = new_img.crop((left, top, right, bottom))#展示图片#image_text5.show()txt5 = tool.image_to_string(image_text5)print(txt5)return txt5
6.提取票据单据
def text6(new_img):#提取票据号码left = 598top = 166right = 870bottom = 182image_text6 = new_img.crop((left, top, right, bottom))#展示图片#image_text6.show()txt6 = tool.image_to_string(image_text6)print(txt6)return txt6

在将数据全部提取完成之后,即进入设置环节,我们需要首先将所有账单文件进行提取,获取他们的文件名和路径。

ocr=CnOcr()
tool = pyocr.get_available_tools()[0]
filePath='img'
img_name=[]
for i,j,name in os.walk(filePath):img_name=name

在获取完整后,即可进行数据导入Excel的操作。

count=1
book = xlwt.Workbook(encoding='utf-8',style_compression=0)
sheet = book.add_sheet('test',cell_overwrite_ok=True)
for i in img_name:img_url = filePath+"/"+iwith open(img_url, 'rb') as f:a = f.read()new_img = PI.open(io.BytesIO(a))## 写入csvcol = ('年份','出票日期','金额','出票人','付款行全称','汇票到日期','备注')for j in range(0,7):sheet.write(0,j,col[j])book.save('1.csv')shijian=text1(new_img)sheet.write(count,0,shijian[0:4])sheet.write(count,1,shijian[5:])sheet.write(count,2,text2(new_img))sheet.write(count,3,text3(new_img))sheet.write(count,4,text4(new_img))sheet.write(count,5,text5(new_img))sheet.write(count,6,text6(new_img))count = count + 1

至此,完整流程结束。

附上源码全部:

from  wand.image import  Image
from PIL import Image as PI
import pyocr
import io
import re
import os
import shutil
import pyocr.builders
from cnocr import CnOcr
import requests
import xlrd
import xlwt
from openpyxl import load_workbookdef chineseNumber2Int(strNum: str):result = 0temp = 1  # 存放一个单位的数字如:十万count = 0  # 判断是否有chArrcnArr = ['壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']chArr = ['拾', '佰', '仟', '万', '亿']for i in range(len(strNum)):b = Truec = strNum[i]for j in range(len(cnArr)):if c == cnArr[j]:if count != 0:result += tempcount = 0temp = j + 1b = Falsebreakif b:for j in range(len(chArr)):if c == chArr[j]:if j == 0:temp *= 10elif j == 1:temp *= 100elif j == 2:temp *= 1000elif j == 3:temp *= 10000elif j == 4:temp *= 100000000count += 1if i == len(strNum) - 1:result += tempreturn resultdef text1(new_img):#提取出票日期left = 80top = 143right = 162bottom = 162image_text1 = new_img.crop((left, top, right, bottom))#展示图片#image_text1.show()txt1 = tool.image_to_string(image_text1)print(txt1)return str(txt1)
def text2(new_img):#提取金额left = 224top = 355right = 585bottom = 380image_text2 = new_img.crop((left, top, right, bottom))#展示图片#image_text2.show()image_text2.save("img/tmp.png")temp = ocr.ocr("img/tmp.png")temp="".join(temp[0])txt2=chineseNumber2Int(temp)print(txt2)return txt2def text3(new_img):#提取出票人left = 177top = 207right = 506bottom = 231image_text3 = new_img.crop((left, top, right, bottom))#展示图片#image_text3.show()image_text3.save("img/tmp.png")temp = ocr.ocr("img/tmp.png")txt3="".join(temp[0])print(txt3)return txt3
def text4(new_img):#提取付款行left = 177top = 274right = 492bottom = 311image_text4 = new_img.crop((left, top, right, bottom))#展示图片#image_text4.show()image_text4.save("img/tmp.png")temp = ocr.ocr("img/tmp.png")txt4="".join(temp[0])print(txt4)return txt4
def text5(new_img):#提取汇票到日期left = 92top = 166right = 176bottom = 184image_text5 = new_img.crop((left, top, right, bottom))#展示图片#image_text5.show()txt5 = tool.image_to_string(image_text5)print(txt5)return txt5
def text6(new_img):#提取票据号码left = 598top = 166right = 870bottom = 182image_text6 = new_img.crop((left, top, right, bottom))#展示图片#image_text6.show()txt6 = tool.image_to_string(image_text6)print(txt6)return txt6ocr=CnOcr()tool = pyocr.get_available_tools()[0]filePath='img'
img_name=[]
for i,j,name in os.walk(filePath):img_name=name
count=1book = xlwt.Workbook(encoding='utf-8',style_compression=0)
sheet = book.add_sheet('test',cell_overwrite_ok=True)for i in img_name:img_url = filePath+"/"+iwith open(img_url, 'rb') as f:a = f.read()new_img = PI.open(io.BytesIO(a))## 写入csvcol = ('年份','出票日期','金额','出票人','付款行全称','汇票到日期','备注')for j in range(0,7):sheet.write(0,j,col[j])book.save('1.csv')shijian=text1(new_img)sheet.write(count,0,shijian[0:4])sheet.write(count,1,shijian[5:])sheet.write(count,2,text2(new_img))sheet.write(count,3,text3(new_img))sheet.write(count,4,text4(new_img))sheet.write(count,5,text5(new_img))sheet.write(count,6,text6(new_img))count = count + 1
http://www.yidumall.com/news/51327.html

相关文章:

  • 网站如何做电脑和手机app在线工具
  • 国外免费logo网站搜索引擎网址
  • wordpress采集翻译插件江苏短视频seo搜索
  • 企业网站运营方案百度开户代理公司
  • 百度官方网站首页电商培训机构靠谱吗
  • 门户网站开发研究报告软文写作的基本要求
  • 别样网图片素材网站专业网站建设公司首选
  • 旅游自媒体网站怎么做免费网站分析seo报告是坑吗
  • 网站运行环境免费外链发布平台
  • 做原创音乐的网站深圳网站建设专业乐云seo
  • 政府采购网上商城电商口碑seo推广公司
  • 网站滚动效果怎么做的网站目录提交
  • 做视频网站需要执照吗独立站怎么搭建
  • WordPress多站点同步设置百度一下就知道百度首页
  • 百度网址ip北京seo网站设计
  • 北京网站开发哪家专业新浪网今日乌鲁木齐新闻
  • 福建自己建设网站广州百度推广开户
  • 做网站需要注意事项淘宝关键词优化软件
  • 查大学专业网站石家庄网站建设培训
  • 如何上传自己做的网站无人区在线观看高清1080
  • 营销做网站公司百度搜索指数1000是什么
  • 太原市网站建设常州网站优化
  • 北京网站建设 时创设计网站排名优化怎么做
  • 利用海康威视做直播网站高清视频线转换线
  • 四川建设厅网站怎么进不去搜索引擎优化要考虑哪些方面
  • 小学生手工制作星链seo管理
  • 新网站seo外包网站推广主要是做什么
  • 如何做网站卖东西seo下拉优化
  • 黄山做网站chrome下载
  • 正邦网站建设 优帮云网销是做什么的