使用Python中的pytesseract模块实现抓取图片中文字
作者:业里村牛欢喜 发布时间:2021-05-06 18:10:28
一、需求分析
最近同事用网上提供扫描软件进行扫描识别文字,每天上线只能够做两次扫描,请求我研发一个小工具帮助解决识别图片的中文字。
二、方案选择
使用pytesseract模块可以解决这个需求问题,pytesseract是光识别图片的模块。需要安装第三方资源库进行搜索。
三、实验实操
3.1、配置环境
Anaconda3.0,pycharm2022版,python3.7.0,win10
3.2、 Anaconda配置
先配置Anaconda3的环境,找到默认安装路径C:\Users\Administrator\.condarc(看自己环境安装哪里)
将.condarc文件备份一个,然后加载源的配置项拷贝进去,重启Anaconda3程序,生效配置项。
加载源:
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
show_channel_urls: true
ssl_verify: true
3.3、安装tesseract程序
下载tesseract的exe安装文件,安装包地址:https://github.com/UB-Mannheim/tesseract/wiki
我下的是 tesseract-ocr-w64-setup-v5.0.1.20220118.exe版本。(本机是64位操作系统)
选配项中记得选择中文的语言,后期识别中文字体做准备。
配置tesseract系统环境变量,将 tesseract-ocr的绝对路径配置在系统变量中。
【从C:\Program Files\Tesseract-OCR安装目录下,直接把tessdata 文件夹里的内容都复制到C:\Users\Administrator\Anaconda3,另外tessdata 文件夹里chi_sim.traineddata,eng.traineddata文件需要复制到C:\ProgramData\Anaconda3下,不然后面运行程序会提示找不到文件,配置好环境变量也不行!】(据说是霸王条款)
重启系统让变量生效。
3.4、安装pytesseract模块
运行Anaconda 终端命令,执行conda install tesserocr pillow
系统已经显示我已经安装。(安装的时间有一些长,需要耐性等待。)
执行另外一个指令conda install pytesseract (安装pytesseract,这个安装需要一点时间等待了)
使用python语句进行验证。
3.5、见证奇迹的环节
测试1:
在pycharm编译器中执行语句操作:
from PIL import Image
import pytesseract
image = Image.open("粉丝.jpg") #打开图片
#print(image.size) #测试图片像素尺寸
text = pytesseract.image_to_string(image, lang='chi_sim') #图片转字符串
text = text.replace("“ ","").replace("。","") #去掉杂质,提纯
print(text) #测试结果
原图片粉丝.jpg:
编译结果:.(已经成功识别图片内部的文字,进行呈现。)
测试2:
原图2
测试结果:可以正常识别图片文字出来了。
参考网友知识:
python提取图片中的文字
anaconda+python+tesseract安装,亲试可用
来源:25235.21462.22270.29255.20013.25991.23383.


猜你喜欢
- 和朋友讨论时,我提到过一个观点,所有框架层设计中,最核心的是导航设计。最近更看到有国外同行提出“80%的可用性是导航!”因为良好的导航可以保
- 滑动验证距离分别获取验证码背景图和滑块图两张照片,然后利用opencv库,通过高斯模糊和Canny算法进行处理,然后通过matchTempl
- 本文实例讲述了PHP实现通过二维数组键值获取一维键名操作。分享给大家供大家参考,具体如下:有如下既定数组:$inviteType = [ &
- 初步认识对于熟悉matplotlib三维画图的人来说,最常用的应该是plot_surface,但这个函数的绘图逻辑是,将xy平面映射到z轴,
- 本章给大家在项目使用时候,常见的一种情况解决案例,即是当我们调用多个线程,使用了同一个函数去处理数据的时候,有些用函数已经处理完成,但是有些
- 本文实例讲述了html静态页面调用php文件的方法。分享给大家供大家参考。具体方法如下:静态页面中看上去好像是不能直接调用php文件的,但是
- 简洁优雅的 C 写法:int a = 1; int b = 2; int temp; temp = a;&nb
- 而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作。目前只提供了VBScript版,JScript版将来可能会提
- 如下所示:<select id="host_list" name="host_list" mu
- 随着对Dreamweaver cs3中集成Spry功能的深入学习,了解并掌握到Spry框架的一些功能模块,其中就有通过Dreamweaver
- 本文实现了PyQt5个各种弹出窗口:输入框、消息框、文件对话框、颜色对话框、字体对话框、自定义对话框其中,为了实现自定义对话框的返回值,使用
- 步骤1、安装Jupyterpip install jupyter2、 新建一个IPython文件3、在Terminal里启动Jupyter
- SqlServer帮助中对扩展属性的描述是: The Extended Properties property sets or retrie
- 一、前言实现名片管理系统,首先要创建两个python file ,分别是cards_main.py和cards_tool.py,前一个是主代
- <html><head><script type="text/javascript" sr
- 除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在。例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出
- OVER的定义OVER用于为行定义一个窗口,它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的
- 代码如下:Select * from T_Employee select FName,FAge from T_Employee select
- 获取评论贴的请求头与表单数据下一篇在这里这里,我们随便选取一个网站,获取该贴评论后的请求头,表单数据以及评论贴链接。(因为涉及敏感信息,自己
- 本文实例分析了Python闭包执行时值的传递方式。分享给大家供大家参考,具体如下:代码中有问题和问题的解释。#!/usr/bin/pytho