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-ocr-setup-4.00.00dev.exe (experimental).

ubuntu:

sudo apt-get install tesseract-ocr
traineddata文件路径: /usr/share/tesseract-ocr/tessdata/

3.安装pytesseract

pip install pytesseract

如不能使用pip直接安装可取搜索模块文件直接安装

遇到问题及解决:

1.FileNotFoundError: [WinError 2] 系统找不到指定的文件

解决办法:

方法1[推荐]: 将tesseract.exe添加到环境变量PATH中,

例如: D:\Tesseract-OCR,默认路径为C:\Program Files (x86)\Tesseract-OCR

注意: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动

方法2: 修改pytesseract.py文件,指定tesseract.exe安装路径

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe‘

方法3:  在实际运行代码中指定

pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'

2.pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Tesseract-OCR\\tessdata/eng.traineddata')

解决方法:

方法1[推荐]:

将tessdata目录的上级目录所在路径(默认为tesseract-ocr安装目录)添加至TESSDATA_PREFIX环境变量中

例如: C:\Program Files (x86)\Tesseract-OCR

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.

方法2:  在.py文件配置中指定tessdata-dir

tessdata_dir_config = '--tessdata-dir "D:\\Tesseract-OCR\\tessdata"'
# tessdata_dir_config = '--tessdata-dir "'C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'
pytesseract.image_to_string(image, config=tessdata_dir_config)

trainedata下载地址: the latest from github.com

示例:

# -*-coding:utf-8-*-
from PIL import Image
import sys
import os
import pytesseract
from selenium import webdriver
sys.path.append('C:\Python27\Lib\site-packages\pytesser')
import pytesser
url='http://192.168.24.189/system/code?0.6824490785056669'
driver = webdriver.Firefox()
driver.maximize_window() #将浏览器最大化
driver.get(url)
imgelement = driver.find_element_by_id('codeImg') #定位验证码
location = imgelement.location #获取验证码x,y轴坐标
size=imgelement.size #获取验证码的长宽
rangle=(int(location['x']),int(location['y']),int(location['x']+size['width']),int(location['y']+size['height'])) #写成我们需要截取的位置坐标
name="code.jpg"
driver.find_element_by_id("codeImg").click()
driver.save_screenshot(name) #截取当前网页,该网页有我们需要的验证码
aa=Image.open(name) #打开截图
frame4=aa.crop(rangle) #使用Image的crop函数,从截图中再次截取我们需要的区域
frame4.save(name)
im = Image.open(name)
#转化到灰度图
imgry = im.convert('L')
#保存图像
imgry.save('g'+name)
#二值化,采用阈值分割法,threshold为分割点
threshold = 140
table = []
for j in range(256):
  if j < threshold:
    table.append(0)
  else:
    table.append(1)
out = imgry.point(table, '1')
out.save('b'+name)
#识别
text = pytesseract.image_to_string(out)
#识别对吗
text = text.strip()
text = text.upper();
print (text)
text = pytesseract.image_to_string(Image.open('code.png'), lang="eng")
print(text)

以上就是python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法的详细内容,更多关于python3 图片识别的资料请关注我们其它相关文章!

(0)

相关推荐

  • python实现百度OCR图片识别过程解析

    这篇文章主要介绍了python实现百度OCR图片识别过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 import base64 import requests class CodeDemo: def __init__(self,AK,SK,code_url,img_path): self.AK=AK self.SK=SK self.code_url=code_url self.img_path=img_path self.ac

  • python实现图片识别汽车功能

    本文实例为大家分享了python实现图片识别汽车的具体代码,供大家参考,具体内容如下 准备工作 1.登陆开发者控制台 2.安装 pip install baidu-aip 模块 原理读取图片的二进制信息,调用百度云第三方接口,将图片二进制信息传递给接口,获取接口返回的信息,进行处理输出 百度云准备第三方接口,实例应用简介 创建实例应用 创建完成后可以看到需要的三个参数 AppID, API Key, Secret Key 代码实现 from aip import AipImageClassify

  • Python实现图片识别加翻译功能

    Python使用百度AI接口实现图片识别加翻译 python诞生30周年 # encoding:utf-8 import requests import base64 from PIL import Image import pytesseract # 这里需要安装一下 Tesseract-OCR # 链接:https://pan.baidu.com/s/1D2eODet7x9xshBVi6ZUZ_Q # 提取码:qfef # 安装好之后别忘了把Tesseract-OCR路径添加到环境变量中 i

  • Python编程实现的图片识别功能示例

    本文实例讲述了Python编程实现的图片识别功能.分享给大家供大家参考,具体如下: 1. 安装PIL,官方没有WIN64位,Pillow替代 pip install Pillow-2.7.0-cp27-none-win_amd64.whl 2. 安装Pytesser 下载pytesser_v0.0.1.zip,解压后复制进Python27\Lib\site-packges\pytesser路径下,无pytesser则新建 在Python27\Lib\site-packges\pytesser中新

  • Python中利用Scipy包的SIFT方法进行图片识别的实例教程

    scipy scipy包包含致力于科学计算中常见问题的各个工具箱.它的不同子模块相应于不同的应用.像插值,积分,优化,图像处理,,特殊函数等等. scipy可以与其它标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算库),或者Matlab工具箱.scipy是Python中科学计算程序的核心包;它用于有效地计算numpy矩阵,来让numpy和scipy协同工作. 在实现一个程序之前,值得检查下所需的数据处理方式是否已经在scipy中存在了.作为非专业程序员,科学家总是喜欢重新发明造

  • python好玩的项目—色情图片识别代码分享

    一.实验简介 本实验将使用 Python3 去识别图片是否为色情图片,我们会使用到 PIL 这个图像处理库,会编写算法来划分图像的皮肤区域 1.1. 知识点 Python 3 的模块的安装 Python 3 基础知识 肤色像素检测与皮肤区域划分算法 Pillow模块的使用 argparse 模块的使用 1.2. 效果展示 二.实验步骤 2.1. 安装包 PIL 2009年之后就没有更新了,也不支持 Python3 ,于是有了 Alex Clark 领导的公益项目 Pillow,Pillow 是一

  • 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使用PIL模块获取图片像素点的方法

    如下所示: from PIL import Image ########获取图片指定像素点的像素 def getPngPix(pngPath = "aa.png",pixelX = 1,pixelY = 1):     img_src = Image.open(pngPath)     img_src = img_src.convert('RGBA')     str_strlist = img_src.load()     data = str_strlist[pixelX,pixe

  • 详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决

    也许自己真的就是有手残的毛病,你说好端端的环境配置好了,自己还在那里瞎鼓捣,我最不想看到的就是在安装一个别的模块的时候,自动卸载了本地的其他模块,每每这个时候,满满的崩溃啊,今天就是一个鲜活的例子. 我们都知道由于2和3版本的差异,2中的PIL模块可以直接安装和导入使用,3中需要安装的实际是Pillow模块,导入的却是PIL模块,我在安装别的模块的时候居然自动地把我本机安装好的Pillow模块卸载了,导致我后面使用的时候一直报错,想着直接再安装一下就行了,却发现事情真的是一团糟. python

  • tesserocr与pytesseract模块的使用方法解析

    1.tesserocr的使用 #从文件识别图像字符 In [7]: tesserocr.file_to_text('image.png') Out[7]: 'Python3WebSpider\n\n' #查看tesseract已安装的语言包 In [8]: tesserocr.get_languages() Out[8]: ('/usr/share/tesseract/tessdata/', ['eng']) #从图片数据识别图像字符 In [9]: tesserocr.image_to_tex

  • Python3 使用pillow库生成随机验证码

    Python3 使用pillow库生成随机验证码的代码如下所示: import random # pillow 包的使用 from PIL import Image,ImageDraw,ImageFont,ImageFilter #Image 负责处理图片 #ImageDraw 负责处理画笔 #ImageFont 负责处理文字 #ImageFilter负责处理路径 img=Image.new('RGB',(150,50),(255,255,255)) #建立一个图片 ''' RGB:表示采用RG

  • Python 使用 Pillow 模块给图片添加文字水印的方法

    像微博一类的平台上传图片时,平台都会添加一个水印,宣誓着对图片的所有权,我们自己的博客平台也可以给自己的图片添加上水印. 还是用 Pillow 模块来实现 先来看一个简单的例子 >>> from PIL import Image >>> from PIL import ImageDraw >>> >>> image = Image.open('/Users/wxnacy/Downloads/vm-error1.png') >&g

  • Python3.5内置模块之time与datetime模块用法实例分析

    本文实例讲述了Python3.5内置模块之time与datetime模块用法.分享给大家供大家参考,具体如下: 1.模块的分类 a.标准库(Python自带):sys.os模块 b.开源模块(第三方模块) c.自定义模块 2.内建模块--time (1)在Python中通常用以下几种方式来表示时间: a.时间戳:从1970年1月1日开始到当下的时间的秒数,导入time模块(import time),调用time.time()方法即可. b.格式化的时间字符串. c.元组(struct_time)

  • C#使用Tesseract进行Ocr识别的方法实现

    目录 1.Nuget搜索Tesseract 2.项目安装Tesseract 3.引用命名空间 4.上Github下载别人的训练库 5.选择图片进行识别 1.Nuget搜索Tesseract 2.项目安装Tesseract 3.引用命名空间 using Tesseract; 4.上Github下载别人的训练库 https://github.com/tesseract-ocr/tessdata 这里下载中文的chi_sim.traineddata,放到了D盘根目录 5.选择图片进行识别 我把图片命名

  • python3中超级好用的日志模块-loguru模块使用详解

    目录 一. 使用logging模块时 二. loguru模块的基础使用 三. logurr详细使用 3.1 add 方法的定义 3.2 基本参数 3.3 删除 sink 3.4 rotation 配置 3.5 retention 配置 3.6 compression 配置 3.7 字符串格式化 3.8 Traceback 记录 一. 使用logging模块时 用python写代码时,logging模块最基本的几行配置,如下: import logging logging.basicConfig(

  • 如何使用Python进行PDF图片识别OCR

    使用场景 使用图片识别可以快速提取图片中的信息,方便高效. Python并不能直接对PDF进行识别,所以如果是识别PDF的话,需要先将PDF转化为图片,然后再进行识别. 必备工具 Python 可以安装3.7及以上版本 tesseract-ocr 下载地址: https://github.com/UB-Mannheim/tesseract/wiki 使用最新版本即可 需要用到的库 pip install pillow pip install opencv-python pip install f

随机推荐