前言

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爬虫代码提取图片中的文字_python识别图像并提取文字的实现方法相关推荐

  1. python爬虫代码实例源码_python爬虫代码示例分享

    这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下. python爬虫代码示例分享 一. ...

  2. python 图像处理与识别书籍_Python图像处理之识别图像中的文字(实例讲解)

    ①安装PIL:pip install Pillow(之前的博客中有写过) ②安装pytesser3:pip install pytesser3 ③安装pytesseract:pip install p ...

  3. python去除图片上的文字_Python图像处理之识别图像中的文字(实例讲解)

    ①安装PIL:pip install Pillow(之前的博客中有写过) ②安装pytesser3:pip install pytesser3 ③安装pytesseract:pip install p ...

  4. python爬虫代码-python网络爬虫源代码(可直接抓取图片)

    在开始制作爬虫前,我们应该做好前期准备工作,找到要爬的网站,然后查看它的源代码我们这次爬豆瓣美女网站,网址为:用到的工具:pycharm,这是它的图标 ...博文来自:zhang740000的博客 P ...

  5. python爬虫代码示例分享

    这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下. python爬虫代码示例分享 一. ...

  6. 提供三块Python爬虫代码学习

    提供三块Python爬虫代码学习 爬取内涵段子 #encoding=utf-8 import urllib2import reclass neihanba():def spider(self):''' ...

  7. 2018年统计用区划代码和城乡划分代码(截止2018年10月31日)(数据及python爬虫代码)

    统计局网站的数据汇总. 细粒度,到最后一级(一般为5级,网站上少部分地区为4级). 数据编码格式为utf8,以便显示名称中的生僻字,请使用合适的文本工具打开. 这里有python爬虫代码和所需库.爬取 ...

  8. python爬虫 点击下一页_python爬虫实现获取下一页代码

    我们首先来看下实例代码: from time import sleep import faker import requests from lxml import etree fake = faker ...

  9. python爬虫requests源码链家_python的爬虫项目(链家买二手房)

    不知不觉,已经工作6年有余,恍恍惚惚,有机会满足房子需求. 在收集房子信息过程中,做些记录. 贝壳的功能很强大,但很难满足小区.距离.教育.面积等多个方面的匹配,使用起来成本仍然较高. 针对以上情况, ...

最新文章

  1. 21 window对象常见事件
  2. 计算机组成原理的中央控制器,计算机组成原理第六章中央控制器(6-7,8,9).pdf
  3. 2020-11-14(移位运算)
  4. int length c语言,第07天C语言(06):数组练习2
  5. 有用的mysql语句
  6. sqlserver 的一些好用的插件
  7. 前端学习资料(书籍和视频)
  8. ddd 访问权限_基于DDD的微服务设计和开发实战
  9. 安卓登录以及会话保持的解决方案
  10. 曲线相似度衡量——曲线距离计算Fréchet distance详解与python计算
  11. [转] 年终回顾,为你汇总一份「前端技术清单」
  12. jquery 查找祖先元素_如何获得jQuery中元素的第一个祖先
  13. 程序员面试金典——1.1确定字符互异
  14. Qt读写Excel--QXlsx设置字体格式、样式8
  15. 未来十年最容易消失和最不易被取代的22个职业,越看越心惊!附相关专业
  16. 一文读懂Elephant Swap的LaaS方案的优势之处
  17. lombok导入报错,版本1.18.12已在maven本地仓库中
  18. 苹果手机可以投影到墙上吗_怎么将手机上的投影到电视上或墙上?
  19. jquery 调用 click 事件 的 三种 方式
  20. java计算机毕业设计银创科技有限公司人事信息系统源码+数据库+系统+lw文档+部署

热门文章

  1. 给WIN2003 IIS SQL服务器安全加固
  2. Linux命令——find详解
  3. Halcon 标定与准确测量
  4. 结对编程-队友代码欣赏
  5. [ZPG TEST 109] 兔子跳跃【构图】
  6. js将数组元素随机排序的方法
  7. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
  8. Informix IDS 11体系打点(918考试)认证指南,第 5 局部: 数据库管事器操作(4)
  9. Android关机流程源码分析
  10. WINCE下SOS驱动开发