image2csv-master工具安装、调试、使用记录

image2csv-master下载

'image2csv - Convert tables stored as images to an usable .csv file' by artperrin GitHub: https://github.com/artperrin/image2csv
 

 

  • CSV文件
  1. CSV文件介绍:英文全称Comma-Separated Values,中文译名逗号分隔值,又因为分隔字符可以不是逗号,有时也称为字符分隔值。CSV文件以纯文本形式储存表格数据,“纯文本”是指该文件是一个字符序列,不包含必须像二进制数字那样被解读的数据。CSV文件由任意数目记录组成,记录间以某种换行符分隔,每条记录由若干字段组成,字段间以字符(如逗号)或字符串分隔。
  2. CSV文件用途:最广泛的应用是在程序之间转移表格数据。例如,一个用户需要交换信息,从一个以私有格式存储数据的数据库程序,到一个数据格式完全不同的电子表格。最可能的情况是,该数据库程序导出数据为CSV文件,然后被导出的CSV文件可以被电子表格程序导入。
  3. CSV文件特征:CSV并不是一种单一的、定义明确的格式,在实践中,CSV泛指具有以下特征的任何文件:
    • 纯文本,使用某个字符集,比如ASCIIUnicodeEBCDICGB2312
    • 由记录组成(典型的是每行一条记录);
    • 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
    • 每条记录都有同样的字段序列。
  4. CSV文件一些需要注意的点:
    • 字段包含特殊字符(逗号,换行符,或双引号),必须以双引号括住;
    • 行内包含一个项目是空字符串,可以以双引号括住;
    • 字段的值包含双引号时,要双写这个双引号(就像把一个双引号当做转义符一样)。

 

  • image2csv-master
  1. image2csv-master功能:将一个内含数字的图片转换为一个CSV文件
  2. 需要借助到的工具:
    • 用到OpenCV处理图片;
    • 用到Tesseract引擎识别数字。
  3. 安装:
    • 安装需要使用的python包,在requirements.txt文件中已列出所需的包和对应版本,使用 pip install – r requirements.txt 命令行命令进行安装;
    • 安装Tesseract:
      1. Tesseract介绍:Tesseract包内含一个OCR引擎libtesseract,和一个命令行程序tesseract。Tesseract支持字符模式的识别,且在Tesseract4的更新中加入了一个基于神经网络LSTM(Long Short-Term Memory 长短期记忆网络)的OCR引擎。Tesseract引擎的运作需要已训练语言数据traineddata文件的支持,支持UTF-8编码,支持多种语言,支持多种待识别文件格式。且经过训练,还能支持其他语言。
      2. 下载第三方Tesseract安装程序(https://github.com/UB-Mannheim/tesseract/wiki
      3. 环境变量配置:1.编辑PATH,加入Tesseract根目录;2.新建TESSDATA_PREFIX变量,路径为Tesseract根目录\tessdata
      4. 更新pytesseract.py文件中tesseract可执行程序路径:

打开python根目录下的

\Lib\site-packages\pytesseract\pytesseract.py文件

修改tesseract_cmd变量的值为tesseract.exe所在路径(注意路径中的斜杠用 / ,防止python将 \ 识别成转移字符,或者可以用 r 防止转义)

  1. 使用:命令行 python image2csv.py -i 待识别图片路径

可选实参:

① -h , --help 显示帮助信息;

② -p , --path 输入输出文件所在路径;

③ -g , --grid [True]可以手动选择分隔框(实测该参数为必写参数,不然会出现TypeError: 'NoneType' object is not iterable 报错);

④ -v , --visualization y/[n] 选择是否显示被分隔后的区域,默认不显示;⑤ -m , --method [fast] 输入图像区域预处理的去噪方法,默认为“fast”方法

  1. 测试:
    • D:\image2csv-master>python image2csv.py -i D:/image2csv-master/testimages/testNotepad.PNG -p notepad -g True
    • 画出一个矩形,自动区域分割器自动以画出的矩形为单位,将图片分割。对X、Y轴偏移量进行调整,使单位矩形框住每个数字,调整好后以0 0输入结束调整。

 

 

 

 

 

    • 生成输出文件

 

 

  • 报错总结
  1. pytesseract.pytesseract.TesseractError: (1, 'Error opening data file C:\\Program Files\\Tesseract-OCR/eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'eng\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')

 

原因:TESSDATA_PREFIX环境变量未配置,注意因为tesseract版本不同,有的版本的环境变量的路径需要设置为tessdata文件夹的“parents directory”,即tessdata的父目录。

    2.pytesseract.pytesseract.TesseractError: (1, "Error: Tesseract (legacy) engine requested, but components are not present in C:\\Program Files\\Tesseract-OCR\\tessdata/eng.traineddata!! Failed loading language 'eng' Tesseract couldn't load any languages! Could not initialize tesseract.")

 

原因:image2csv.py代码中第84行,自定义配置变量中,将oem(OCR Engine Mode)选为了模式0,这个模式只提供了传统引擎,不能完成所需功能,要将代码中该模式选为第三个,即改为--oem 3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值