本节我们将介绍使用python识别一张图片中的内容,并试着得到一张表格,当然并不是类似于Excel的表格,而是该表格的markdown代码。

注:原创内容,转载请标明出处!

相关工具的安装

本次实验环境:win10,Pycharm2019.3。

安装相关库既可以使用命令行,也可以使用Pycharm自带的工具。

打开cmd命令行或者powershell。

首先安装PIL:

pip install Pillow

这是已经安装好PIL的示意图。

之后,安装pytesseract:

pip install pytesseract

这是已经安装好pytesseract的示意图。

接下来,安装Tesseract-OCR,注意对应系统。

环境配置,输入

tesseract

tesseract -v

如果正常输出,表示配置成功了(我在实际操作时,安装完成后自动配置了系统变量),如果没有,找到之前安装的路径:

例如:

G:\Program Files (x86)\Tesseract-OCR

将该路径添加到系统变量中

如果你想做英文之外的识别,Tesseract-OCR是没有带其他语言包的,你可以去下载其他语言包。

这里我添加了简体中文的语言包,但是使用的是自带的英文语言包。

同时,我们还需要一项配置,找到python安装路径下的pytesseract.py,我这里的路径是

G:\Python37\Lib\site-packages\pytesseract

打开该路径下的pytesseract.py文件。

将其中的

tesseract_cmd = tesseract.exe

替换为你之前安装Tesseract-OCR的路径。

tesseract_cmd = 'G:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

简单测试

这是一张图:

先简单演示一下:

# -*- coding: utf-8 -*-

from PIL import Image

import pytesseract

# 注意图片路径和名称

path = "3.jpg"

# lang参数指定了语言包,你可以下载相应的语言包,这里使用自带的英文包

content = pytesseract.image_to_string(Image.open(path), lang="eng")

print(content)

由于数据有些多,我只列出一部分。

90

70

50

40

130

70

90

20

120

110

100

30

...

70

60

80

60

80

60

50

50

60

60

60

60

这里呢,我们的工作就完成了大部分了,接下来我们试着将它转换一个对应表格的markdown代码。

转换

我们得到的结果是一个字符串,离我们实际的表格内容还有一段距离,也不难,做些数据处理就可以了。

markdown表格的语法:

| 左对齐 | 居中对齐 | 右对齐 |

| :-----| :----: | ----: |

| 内容 | 内容 | 内容 |

| 内容 | 内容 | 内容 |

这里直接上程序了:

# -*- coding: utf-8 -*-

from PIL import Image

import pytesseract

path = "3.jpg"

text = pytesseract.image_to_string(Image.open(path), lang="eng")

text_list = text.split()

rows = 12

lists = 6

md_text = []

list_name = ["语文", "数学", "英语", "物理", "化学", "生物"]

md_text.append(["|"])

for name in list_name:

md_text[0].append(str(name) + "|")

md_text[0] = "".join(md_text[0])

direction = ["中", "中", "中", "中", "中", "中"]

md_text.append(["|"])

for d in direction:

if str(d) == "左":

md_text[1].append(":----|")

if str(d) == "中":

md_text[1].append(":----:|")

if str(d) == "右":

md_text[1].append("----:|")

md_text[1] = "".join(md_text[1])

for r in range(rows):

res = "|"

for l in range(lists):

res += (text_list[r + l * rows] + "|")

md_text.append(res)

file = open("3.txt", "w")

for m in md_text:

file.write(m + "\n")

file.close()

print(md_text)

结果:

['|语文|数学|英语|物理|化学|生物|', '|:----:|:----:|:----:|:----:|:----:|:----:|', '|90|120|130|100|80|70|', '|70|110|110|60|60|60|', '|50|40|120|90|80|80|', '|40|60|100|70|60|60|', '|130|90|90|80|80|80|', '|70|50|90|60|60|60|', '|90|70|140|50|50|50|', '|20|140|100|90|70|50|', '|120|130|80|60|60|60|', '|110|90|60|50|70|60|', '|100|70|50|90|90|60|', '|30|100|50|80|80|60|']

看看文件内容。

看看渲染结果:

![](https://img2018.cnblogs.com/blog/1950846/202002/1950846-20200226165418182-1409409454.png)

结果还不错,当然我们并没有训练样本,所以对于稍微复杂一点的图片,可能识别结果就不好了。

之后我以这个为基础,写一个带GUI的程序,界面如下:

完整带GUI程序的github仓库地址。

如何将WORD表格转换成EXCEL表格

WORD和EXCEL都可以制作表格,但WORD表格与EXCEL表格之间有着很明显的差距,所以在办公中经常会需要将WORD转换成EXCEL,今天小编就教大家一招将WORD表格转换成EXCEL表格. 操作 ...

用Python将word文件转换成html(转)

用Python将word文件转换成html   序 最近公司一个客户大大购买了一堆医疗健康方面的科普文章,希望能放到我们正在开发的健康档案管理软件上.客户大大说,要智能推送!要掌握节奏!要深度学习!要 ...

怎样将PDF文件转换成Excel表格

PDF文件怎样转换成Excel表格呢?因为很多的数据信息现在都是通过PDF文件进行传输的,所以很多时候,信息的接受者都需要将这些PDF文件所传输的数据信息转换成Excel表格来进行整理,但是我们应该怎 ...

PDF文件转换成Excel表格的操作技巧

我们都知道2007以上版本的Office文档,是可以直接将文档转存为PDF格式文档的.那么反过来,PDF文档可以转换成其他格式的文档吗?这是大家都比较好奇的话题.如果可以以其他格式进行保存,就可以极大 ...

使用python将ppm格式转换成jpg【转】

转自:http://blog.csdn.net/hitbeauty/article/details/48465017 最近有个很火的文章,叫 有没有一段代码,让你觉得人类的智慧也可以璀璨无比? 自己试 ...

python入门:UTF-8转换成GBK编码

#!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #temp(临时雇员,译音:泰坡) #decode(编码,译音:迪口德) #en ...

ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)

功能概述 Excel2HtmlTable的主要功能就是把Excel的内容以表格的方式,展现在页面中.Excel的多个Sheet对应页面的多个Tab选项卡.转换算法的难点在于,如何处理行列合并,将Exc ...

SnowNLP:•中文分词•词性标准•提取文本摘要,•提取文本关键词,•转换成拼音•繁体转简体的 处理中文文本的Python3 类库

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和Te ...

分别用Excel和python进行日期格式转换成时间戳格式

最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

随机推荐

R中数据拆分和整合

library(data.table)ID <- c(NA,1,2,2)IDTime <- c(1,2,NA,1)TimeX1 <- c(5,3,NA,2)X1X2 <- c( ...

在Win8中创建热点,共享网络

在Win8中创建热点,共享网络 办公室中,我独享10M光纤,没什么要下的,便想利用来更新下Ipad里面的程序,下点公开课.那在不利用软件[用很多wifi共享的软件],从win7开始 系统本身就自带相关 ...

无法加载程序集,因为该程序集包含EdmSchemaAttribute,并按名称加载结束类型。不允许同时按名称和特性进行加载

小小记录下,今天写程序时遇到的一个bug,相信大家用MVC+EF写项目时遇到的概率是挺大的.昨天本人也遇到了,很悲剧,暂时没想到好的办法解决,跟项目经理交流了下,这个问题认为出现在EF的自身设计上,它 ...

jquery easyui datagrid字段绑定问题

表字段为G_XIAN,生成PO对象时为private String GXian; datagrid字段必须写为gXian,否则数据无法正确绑定. 总结:不管VO对象中字段名称首字母是否大写,在data ...

appium&plus;java &lpar;六&rpar; 手机chrome浏览器操作

一.前言 早之前写过一段时间的appium for native app(即原生app脚本),但尴尬的是从未写过类似的文章,后期有时间我会陆续接着写,近一阶段有时间又把appium捡起来了,由于公司产 ...

PyCharm引入python需要使用的包

在学习python的时候,被推荐了使用PyCharm这款IDE,但是在import包的时候却发生了问题- -无法找到相应的包,但是明明通过pip安装成功了 在这款IDE中,要导入包,需要手动进行引入 ...

Spring&lowbar;day02--课程安排&lowbar;Spring的bean管理(注解)&lpar;注解创建对象&sol;注入属性、配置文件和注解混合使用&rpar;

Spring_day02 上节内容回顾 今天内容介绍 Spring的bean管理(注解) 注解介绍 Spring注解开发准备 注解创建对象 注解注入属性 配置文件和注解混合使用 AOP概念 AOP原理 ...

如何理解PHP的单例模式

单例模式就是让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源. PHP的单例模式实现要求: 1.一个private的__construct是必须的,单例类不能在其它类中实例化,只 ...

深入理解最强桌面地图控件GMAP&period;NET ---&lbrack;更新&rsqb;百度地图

之前写了篇博文,深入理解最强桌面地图控件GMAP.NET --- 百度地图 但是很多回复说百度地图更新了,不能显示百度的离线地图.之前承诺说是国庆节更新,最近才更新.代码已经提交到: https:// ...

Python学习 :函数

函数 函数(Functions) 是指可重复使用的程序片段.它们允许你为某个代码块赋予名字,允许你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数.这就是调用(Calling)函数. ...

python图片表格提取算法_python提取图片内容并转换成对应表格的markdown代码相关推荐

  1. python 数字转化excel行列_Python 3 实现数字转换成Excel列名(10进制到26进制的转换函数)...

    背景: 最近在看一些Python爬虫的相关知识,讲爬取的一些数据写入到Excel表中,当时当列的数目不确定的情况下,如何通过遍历的方式讲爬取的数据写入到Excel中. 开发环境: Python 3  ...

  2. python对象列表转换为字典_python实现class对象转换成json/字典的方法

    本文实例讲述了python实现class对象转换成json字典的方法.分享给大家供大家参考,具体如下: # -*- encoding: UTF-8 -*- class Student: name = ...

  3. python调用迅雷下载引擎_python将下载地址转换成迅雷和qq旋风的下载地址

    迅雷和qq旋风下载,有加速和离线功能,很方面,我是在网上看到的原始地址和迅雷地址,qq旋风地址的转化原理,然后用python+pyqt写了一个客户端 原理: 迅雷: 迅雷下载地址="thun ...

  4. python处理时间格式时分秒_python将时分秒转换成秒的实例

    处理数据的时候遇到一个问题,从数据库里导出的数据是时分秒的格式:hh:mm:ss ,现在我需要把它转换成秒,方便计算. 原数据可能分两种情况,字段有可能是文本字符串类型的,也有可能是时间类型,他们的处 ...

  5. python字符串转化为浮点_python如何将字符串转换成浮点型

    python将字符串转换成浮点型的方法:可以利用float()函数来实现.float()函数用于将整数和字符串转换成浮点数并返回,具体使用方法如:[num1 = "123.12"; ...

  6. python将文字转换为语音_python实现将文本转换成语音

    1.[代码][Python]代码 # Text To Speech using SAPI (Windows) and Python module pyTTS by Peter Parente # do ...

  7. python读取一个TXT转换成EXCEL表格

    [任务]:python读取一个TXT转换成EXCEL表格 [坑1]pycharm安装后代码区不能编辑,是由于最新的pycharm在安装时自动装了vimVim插件, 方法一:在tools-Vim emu ...

  8. ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)...

    功能概述 Excel2HtmlTable的主要功能就是把Excel的内容以表格的方式,展现在页面中. Excel的多个Sheet对应页面的多个Tab选项卡. 转换算法的难点在于,如何处理行列合并,将E ...

  9. excel表格中18位身份证号码如何转换成出生日期

    1.获取出生日期,如果Excel表上,如果A1为身份证号码. =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&&quo ...

  10. mpp文件转换excel_怎么将pdf文件转换成excel表格格式呢?

    在我们的日常工作当中,有的时候偶尔会出现一些商业E-Mail的发送,但是在发送之前我们是需要将PDF文档中的数据内容转换成Excel表格的形式.所以学会将PDF转Excel的方法很重要,那不知道小伙伴 ...

最新文章

  1. [转]Sandcastle初探——官方版的NDoc
  2. php 打开任意文件下载,TEC-004-php文件下载任意文件读取漏洞修复
  3. JVM(一) ---JVM的数据模型
  4. Reat学习01——初步接触与安装
  5. 技术人必备的碎片化时间学习工具
  6. 基于CAS的低时延队列实现(原理示例)
  7. ++递归 字符串全排列_剑指 Offer 38. 字符串的排列
  8. 微众银行互联网架构首次曝光
  9. StringUtil.isNotEmpty
  10. ListView更新的几种方法
  11. C# 调用控制台应用程序及传参
  12. java卡 apdu_将applet安装到java卡的APDU命令的顺序是什么?
  13. 直播带货系统,实现直播间人数统计
  14. 百度推广怎么做排名靠前网站链接
  15. 蓝桥杯python青少年题目_蓝桥杯大赛青少组竞赛规则及样题
  16. iOS Twitter登录无法收到回调数据
  17. 水电图纸——管道的预埋和盒子的放置-1
  18. 微信支付分(三)--完结支付分订单
  19. win10 premiere cc 软件无声音解决办法
  20. java 篮球队淘汰赛_篮球淘汰赛怎么安排 6支篮球队淘汰赛图

热门文章

  1. 投资港股市场该选择哪种交易接口获取行情数据?
  2. 计算机研究生期末汇报,研究生学期总结ppt.doc
  3. pancakeswap 开盘抢跑机器人 (附代码)
  4. Snipast截图软件
  5. 基于STM32F103将采集的温度-湿度值通过串口输出,用OLED屏显示自己的学号和姓名以及显示AHT20的温度和湿度,滑动显示长字符
  6. 大牛云集!清华大学2019年姚班及智班第一届AI本科生名单公布!
  7. python投票程序计数_计数投票程序
  8. 群主微信sdk说明地址
  9. chm文件打不开的问题
  10. Kiwi for Gmail Mac(mac gmail邮箱客户端)