Python实现OCR识别之pytesseract案例详解

Python实现OCR识别:pytesseract

Python常用pytesseract进行图片上的文字识别,即OCR识别,完整的代码比较简单,只要下面一行即可,但是实际使用时环境配置上容易出错。

from PIL import Image
import pytesseract

text = pytesseract.image_to_string(Image.open('/Users/alice/Documents/Develop/PythonCode/textinphoto.PNG'))
print(text)

因此使用前,需要先安装pillow和pytesseract依赖包。

然而运行时仍然报错,raise TesseractNotFoundError()
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path

原因是因为未安装tesseract,然后使用pip3 install tesseract之后仍然提示错误,如图:

alicedembp:~ alice$ pip3 install tesseract
Requirement already satisfied: tesseract in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.1.3)
alicedembp:~ alice$ tesseract
-bash: tesseract: command not found

无法使用,往上找了很多教程,说是要使用brew安装,于是得以解决,步骤为:

  • 先安装brew
alicedembp:~ alice$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 再使用brew安装leptonica
alicedembp:~ alice$ brew install leptonica
  • 使用brew安装tesseract
alicedembp:~ alice$ brew install tesseract
  • 安装成功,通过命令行tesseract -v的方式查看是否成功,出现版本号则为安装成功
alicedembp:~ alice$ tesseract
Usage:
  tesseract --help | --help-extra | --version
  tesseract --list-langs
  tesseract imagename outputbase [options...] [configfile...]

OCR options:
  -l LANG[+LANG]        Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.

Single options:
  --help                Show this help message.
  --help-extra          Show extra help for advanced users.
  --version             Show version information.
  --list-langs          List available languages for tesseract engine.

alicedembp:~ alice$ tesseract -v
tesseract 4.0.0
 leptonica-1.78.0
  libgif 5.1.4 : libjpeg 9c : libpng 1.6.36 : libtiff 4.0.10 : zlib 1.2.11 : libwebp 1.0.2 : libopenjp2 2.3.1
 Found AVX2
 Found AVX
 Found SSE

接下来就可以直接使用了,使用如下代码:

alicedembp:~ alice$ tesseract /Users/alice/Documents/Develop/PythonCode/textinphoto.png /Users/alice/Documents/Develop/PythonCode/output.txt

打开textinphoto.PNG的图片,将文字输出到output.txt,图片如下

运行成功,产生output.txt文档,里面的文本为图片中识别出的文字。

到此这篇关于Python实现OCR识别之pytesseract案例详解的文章就介绍到这了,更多相关python OCR识别之pytesseract内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-07-21

Python 实现任意区域文字识别(OCR)操作

本文的OCR当然不是自己从头开发的,是基于百度智能云提供的API(我感觉是百度在中国的人工智能领域值得称赞的一大贡献),其提供的API完全可以满足个人使用,相对来说简洁准确率高. 安装OCR Python SDK OCR Python SDK目录结构 ├── README.md ├── aip //SDK目录 │ ├── __init__.py //导出类 │ ├── base.py //aip基类 │ ├── http.py //http请求 │ └── ocr.py //OCR └── se

python EasyOCR库实例用法介绍

说明 1.EasyOCR是一个用python编写的OCR三方库.可以在python中调用,用来识别图像中的文字,并输出为文本. 2.支持80多种语言的识别,识别精度高,甚至要超过PaddleOCR. 安装命令 pip install easyocr 代码实现 import easyocr #设置识别中英文两种语言 reader = easyocr.Reader(['ch_sim','en'], gpu = False) # need to run only once to load model

python muggle_ocr库用法及实例代码

说明 1.muggle_ocr是一款轻量级的ocr识别库,对于python来说是识别率较高的图片验证码模块. 2.主要用于识别各种类型的验证码,一般文字提取效果稍差. 安装命令 pip install muggle_ocr 实例 import muggle_ocr # 初始化sdk:model_type 包含了 ModelType.OCR/ModelType.Captcha 两种模式,分别对应常规图片与验证码 sdk = muggle_ocr.SDK(model_type=muggle_ocr.

python3光学字符识别模块tesserocr与pytesseract的使用详解

OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程,对应图形验证码来说,它们都是一些不规则的字符,这些字符是由字符稍加扭曲变换得到的内容,我们可以使用OCR技术来讲其转化为电子文本,然后将结果提取交给服务器,便可以达到自动识别验证码的过程 tesserocr与pytesseract是Python的一个OCR识别库,但其实是对tesseract做的一层Python API封装,pytesseract是Goog

python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法

1.安装Pillow pip install Pillow 2.安装tesseract-ocr github地址: https://github.com/tesseract-ocr/tesseract 或本地下载地址:https://www.jb51.net/softs/538925.html windows: The latest installer can be downloaded here: tesseract-ocr-setup-3.05.01.exe and tesseract-oc

python 如何做一个识别率百分百的OCR

写在前面 当然这里说的百分百可能有点夸张,但其实想象一下,游戏里面的某个窗口的字符就是那种样子,不会变化的.而且识别的字符可能也不需要太多.中文有大几千个常用字,还有各种符号,其实都不需要. 这里针对的场景很简单,主要是有以下几点: 识别的字符不多:只要识别几十个常用字符即可,比如说26个字母,数字,还有一些中文. 背景统一,字体一致:我们不是做验证码识别,我们要识别的字符都是清晰可见的. 字符和背景易分割:一般来说就是对图片灰度化之后,黑底白字或者白底黑字这种. 技术栈 这里用到的主要就是py

python PaddleOCR库用法及知识点详解

说明 1.PaddleOCR是基于深度学习的ocr识别库,中文识别精度相当还不错,能够应对大多数文字提取需求. 2.需要依次安装三个依赖库,shapely库可能会受到系统的影响,出现安装错误. 安装命令 pip install paddlepaddle pip install shapely pip install paddleocr 代码实现 ocr = PaddleOCR(use_angle_cls=True,) # 输入待识别图片路径 img_path = r"d:\Desktop\4A3

python程序文件扩展名知识点详解

python程序文件的扩展名称是什么 python程序的扩展名有.py..pyc..pyo和.pyd..py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言写的python库. 扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名.下面是几种扩展名的用法. py:py就是最基本的源码扩展名.windows下直接双击运行会调用python.exe执行. pyw:pyw是另一种源码扩展名,跟py唯一的区别是在windows

Python pandas库中的isnull()详解

问题描述 python的pandas库中有一个十分便利的isnull()函数,它可以用来判断缺失值,我们通过几个例子学习它的使用方法. 首先我们创建一个dataframe,其中有一些数据为缺失值. import pandas as pd import numpy as np df = pd.DataFrame(np.random.randint(10,99,size=(10,5))) df.iloc[4:6,0] = np.nan df.iloc[5:7,2] = np.nan df.iloc[

关于python的缩进规则的知识点详解

一般的语言都是通过{}或end来作为代码块的标记,而Python则是通过缩进来识别代码块的. 对于Python的这种"缩进"风格,喜欢它的人说这是一种乐趣:不喜欢它的人说这是一门需要卡尺的语言,因为需要使用"游标卡尺"去测量每行代码的缩进. 不管怎么样,Python的开发者有意让违反了缩进规则的程序不能通过编译,以此让程序员养成良好的编程习惯.并且Python语言利用缩进表示语句块的开始和退出,而非使用{}或者其他字符. 今天就简单和大家介绍一下Python缩进的方

Python常用库Numpy进行矩阵运算详解

Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度快了好几百.因为Numpy数组本身能节省内存,并且Numpy在执行算术.统计和线性代数运算时采用了优化算法. Numpy的另一个强大功能是具有可以表示向量和矩阵的多维数组数据结构.Numpy对矩阵运算进行了优化,使我们能够高效地执行线性代数运算,使其非常适合解决机器学习问题. 与Python列表相比

Python对列表的操作知识点详解

Python的数据结构有列表.元组.集合.字典等,可以吧列表当成一个清单,是有序的,我们可以通过索引访问到列表中的元素,列表还可以进行修改.新增和删除的操作.列表中的数据类型是不限制的,可以是字符串.数值等,不要求必须是同一种类型. 首先我们来讲一下列表的创建,创建列表使用[],如果创建一个空的列表,直接用[]表示即可.由下图我们可以看到,创建的列表对于数据格式没有限制,可以存放字符串.数值.甚至是列表. 我们可以使用type()方法查看变量的类型,可以看到创建的是列表,我们使用len()函数来

python getpass模块用法及实例详解

getpass import getpass username = input("username:") password = getpass.getpass("password:") print(username,password) 在pycharm中运行下面的代码时不能输入密码(软件问题,代码没错),选择命令行执行 密码默认不显示 例子: import getpass _usename = "fww" _password = "12

Python requests库用法实例详解

本文实例讲述了Python requests库用法.分享给大家供大家参考,具体如下: requests是Python中一个第三方库,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.接下来将记录一下requests的使用: 安装 要使用requests库必须先要安装: pip install requests 创建请求 通过requests库发出一个请求非常简单,首先我们先导入

Python 数值区间处理_对interval 库的快速入门详解

使用 Python 进行数据处理的时候,常常会遇到判断一个数是否在一个区间内的操作.我们可以使用 if else 进行判断,但是,既然使用了 Python,那我们当然是想找一下有没有现成的轮子可以用.事实上,我们可以是用 interval 这一个库来完成我们需要的操作. 区间判断基础 最基础的区间判断操作就是先创建一个区间几个,然后使用 in 来判断一个数是否存在于区间之内.代码如下: from interval import Interval zoom_2_5 = Interval(2, 5)

python中selenium库的基本使用详解

什么是selenium selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等.selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid). S

对Python中gensim库word2vec的使用详解

pip install gensim安装好库后,即可导入使用: 1.训练模型定义 from gensim.models import Word2Vec model = Word2Vec(sentences, sg=1, size=100, window=5, min_count=5, negative=3, sample=0.001, hs=1, workers=4) 参数解释: 1.sg=1是skip-gram算法,对低频词敏感:默认sg=0为CBOW算法. 2.size是输出词向量的维数,值