前言

python图像识别一般基础到的就是tesseract了,在爬虫中处理验证码广泛使用。

安装

安装教程网上大都差不多,Windows下确实比较麻烦,涉及到各种路径、环境变量甚至与linux不同的路径分隔符,所以这里的安装是基于Centos7。

1. 依赖安装

yum install -y automake autoconf libtool gcc gcc-c++

2. 安装leptonica

Leptonica主要用于图像处理和图像分析

原则上所有的库文件都是可以直接用yum安装的,如果想要具体的某个版本,可以前往官方源下载对应版本然后按照对应方式编译

wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gz

tar -zxvf leptonica-1.74.4.tar.gz

cd leptonica-1.74.4/

./configure

make && make install

3. 安装tesseract

其他各版本可以在这里下载并自行编译,也提供直接使用的文件。

yum install tesseract

4. 验证安装

tesseract --version

5. 语言包下载

前往tesseract-ocr/tessdata下载相应的语言包,然后将之移动到tessdata目录下,可以用whereis tesseract查看一下具体的目录,我的是/usr/share/tesseract/tessdata/mv *.traineddata /usr/local/share/tessdata/

6. 查看目前已下载的语言

tesseract --list-langs

使用

# tesseract

Usage:

tesseract --help | --help-psm | --help-oem | --version

tesseract --list-langs [--tessdata-dir PATH]

tesseract --print-parameters [options...] [configfile...]

tesseract imagename|stdin outputbase|stdout [options...] [configfile...]

OCR options:

--tessdata-dir PATH Specify the location of tessdata path.

--user-words PATH Specify the location of user words file.

--user-patterns PATH Specify the location of user patterns file.

-l LANG[+LANG] Specify language(s) used for OCR.

-c VAR=VALUE Set value for config variables.

Multiple -c arguments are allowed.

--psm NUM Specify page segmentation mode.

--oem NUM Specify OCR Engine mode.

NOTE: These options must occur before any configfile.

语法

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

imagename:图片名字

outputbase:指定输出,如果希望直接输出而不是保存到文件,那么就使用 stdout,否则这个参数将会作为保存结果的文件的前缀

-l指定语言文件,默认使用英文

tesseract --print-parameters:查看更多参数信息

使用-c指定单项参数的值或者将配置写入配置文件放在命令最后(支持多个配置文件)

psm 识别图像的方式

0:定向脚本监测(OSD)

1: 使用OSD自动分页

2 :自动分页,但是不使用OSD或OCR(Optical Character Recognition,光学字符识别)

3 :全自动分页,但是没有使用OSD(默认)

4 :假设可变大小的一个文本列。

5 :假设垂直对齐文本的单个统一块。

6 :假设一个统一的文本块。

7 :将图像视为单个文本行。

8 :将图像视为单个词。

9 :将图像视为圆中的单个词。

10 :将图像视为单个字符。

python中使用

Tesseract安装完成后可以很方便的被Python调用,但是需要pillow和pytesseract的支持。

python中转换

image_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING)

image Object,由Tesseract处理的图像的PIL Image/NumPy数组

lang String,Tesseract语言代码字符串

config String,任何其他配置字符串,例如:config='--psm 6'

语言文件可以叠加,用“+”隔开

我们也可以在这里进行tessdata路径的设置,跟在config里面即可

更多配置包括config和psm都和tesseract类似

实例:

流程: 打开图片,配置,转换,可以通过Image的open或者cv2的imread打开图片,之后对图片进行对比度增强,降噪等处理,效果会好一些。

from PIL import Image

import pytesseract

class Languages:

CHS = 'chi_sim'

ENG = 'eng'

def img_to_str(image_path, lang=Languages.ENG):

return pytesseract.image_to_string(Image.open(image_path), lang)

print(img_to_str('pic/numu.png', lang=Languages.ENG))

print(img_to_str('pic/pro.png', lang=Languages.ENG))

总结

简单的文本识别效果还是不错的,但是设计到多空行、符号等,识别效果就不是太好了,准确度方面可以通过对字库的训练达到想要的效果,之后对获取到的文本利用诸如re等各种库进行操作,其实应用还蛮广泛的。2. 但是它在验证码方面的话效果还是不错的,验证码的话tesserocr也是比较方面的.

识别中文可能会出现编码错误,这也是识别上的漏洞之一了,网上大佬们所说的改变文本的编码似乎并不能解决问题,所以对长文本图片处理还是不太建议直接转换。

图文处理也可以借鉴一些各平台的API,百度、腾讯、美团都有支持.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: python识别图像并提取文字的实现方法

本文地址: http://www.cppcns.com/jiaoben/python/263983.html

python识别文字并且提示_python识别图像并提取文字的实现方法相关推荐

  1. 《OpenCv视觉之眼》Python图像处理二十一:Opencv图像处理之图像线性变换和非线性变换的方法及原理

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  2. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  3. python画柱形图显示数值_python画柱状图--不同颜色并显示数值的方法

    用python画柱状图容易,但是如何对不同柱子使用不同颜色呢?同时在柱子顶端显示精确数值? 主要用的方法为: atplotlib.pyplot.bar(left, height, width=0.8, ...

  4. python科学计数法输出_python 不以科学计数法输出的方法

    python 不以科学计数法输出的方法 其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定 以上这篇p ...

  5. python爬虫代码提取图片中的文字_python识别图像并提取文字的实现方法

    前言 python图像识别一般基础到的就是tesseract了,在爬虫中处理验证码广泛使用. 安装 安装教程网上大都差不多,Windows下确实比较麻烦,涉及到各种路径.环境变量甚至与linux不同的 ...

  6. python识别文字并且提示_python脚本:检测字符串标识符

    字符串标识符首先要以字母或者下划线开始,后面要跟字母,下划线或者数字 编写python脚本:使之可以检测长度大于等于1的标识符,并且可以识别 Python 关键字 import string impo ...

  7. python百度ai文字识别、代码分析_python利用百度AI实现文字识别功能

    本文为大家分享了python实现文字识别功能大全,供大家参考,具体内容如下 1.通用文字识别 # -*- coding: UTF-8 -*- from aip import AipOcr # 定义常量 ...

  8. python 识别图片中的中文_python识别图片中文字的方法

    Tesseract 文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别.Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别.但是在此之 ...

  9. python判断是否为完全数_Python识别完美数

    完美数 完美数(perfect number,又称完全数)指,它所有的真因子(即除了自身以外的因子)和,恰好等于它自身. 第一个完美数:6, 第二个完美数:28, 第三个完美数:496, 第四个完美数 ...

  10. python识图找图_python识别图片

    import requests from aip import AipOcr image = requests.get('https://static.pandateacher.com/7b5d6d8 ...

最新文章

  1. 获取数组第N个元素的方法
  2. Oracle11g与Oracle11gxe有什么区别
  3. java 平滑升级_服务器spring boot版本,平滑升级
  4. 解决GIT代码仓库不同步问题
  5. CSSE*PTC student tutoring program student lecturers of 2018-2019 Academic Year.
  6. 牛客网 在线编程 回文链表
  7. bucket sort sample sort 并行_双调排序Bitonic Sort,适合并行计算的排序算法
  8. 测试centos x64 6.2安装oracle 11G
  9. 李明顺专栏周5月12日:给门户支招
  10. 电子元件 —— 继电器
  11. Python学习笔记008_类_对象_继承_组合_类相关的BIF
  12. IEEE论文投稿模板大全
  13. blog在搜索引擎的排名下降与technorati
  14. 2021最新WordPress安装教程(一):Centos7安装Apache
  15. word 的使用 —— 快捷键(分节符 分页符 分栏符)
  16. 只要能言之有理,持之有据,则可立于讲台
  17. 字符串 splice()、split() 和slice()方法
  18. 计算机网络学习16:以太网交换机自学习与帧转发流程、生成树协议STP
  19. 身份证OCR识别接口的优点
  20. Java基础——夯实基础

热门文章

  1. Chapter 5. MPEG-4 Visual
  2. 对 Lotus Notes 邮件模版进行二次开发的最佳实践
  3. 2007年春节,祝朋友们:身体健康,万事如意! 度过一个愉快春节!
  4. Windows server 2019 - Raid5 搭建+测试
  5. secure CRT连接华三、华为模拟器
  6. HCIE-Security Day33:IPSec:深入学习ipsec ikev2、IKEV1和IKEV2比较
  7. HCIE-Security Day26:IPSec:实验(一)两个网关之间通过IKE方式协商IPSec PN隧道(采用预共享密钥认证)
  8. 计算机网络网络层之IP协议(1)——IP数据报
  9. 算法学习之路|程序运行时间
  10. 两道考研算法设计题- 2010 2013