Python网络数据采集之图像识别与文字处理|第10天

User:你好我是森林

Date:2018-04-15

Mark:《Python网络数据采集》

原文:https://chensenlin.cn/posts/55181/

网络采集系列文章

Python网络数据采集之创建爬虫

Python网络数据采集之HTML解析

Python网络数据采集之开始采集

Python网络数据采集之使用API

Python网络数据采集之存储数据

Python网络数据采集之读取文件

Python网络数据采集之数据清洗

Python网络数据采集之处理自然语言

Python网络数据采集之登录采集处理

Python网络数据采集之采集JavaScript

图像识别与文字处理

将图像翻译成文字一般被称为光学文字识别(Optical Character RecognitionOCR)。可以实现 OCR 的底层库并不多,目前很多库都是使用共同的几个底层 OCR 库,或者是在上面进行定制。

OCR库概述

Python常用的OCR库有两个:PillowTesseract。每个库都可以从它们的网站上下载并安装(http://pillow.readthedocs.org/installation.html

https://pypi.python.org/pypi/pytesseract),或者用第三方管理器(像 pip)通过“pillow”“pytesseract”进行安装。

Pillow

Pillow 是从 Python 2.x版本的 Python图像库(Python Imaging LibraryPIL)分出来的,支持Python 3.x版本。和PIL一样,Pillow也可以轻松地导入代码,并通过大量的过滤、修饰甚至像素级的变换操作处理图片:

from PIL import Image,ImageFilter

kitten = Image.open("demo.jpg")#打开图片
blurryKitten = kitten.filter(Imagefilter.GaussianBlur)
blurryKitten.save("demo_two.jpg")#另存为
blurryKitten.show()
Tesseract

Tesseract 是目前公认最优秀、最精确的开源 OCR 系统。Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体,也可以识别出任何Unicode字符。

Tesseract 是一个 Python的命令行工具,不是通过 import语句导入的库。安装之后,要用 tesseract 命令在Python的外面运行。

安装 Tesseract

Windows:点击下载安装

Linux:sudo apt-get tessertact-ocr

Mac: brew install tesseract;也可以下载源码安装

NumPy

NumPy 是一个非常强大的库,具有大量线性代数 以及大规模科学计算的方法。因为NumPy可以用数学方法把图片表示成巨大的像素数组,所以它可以流畅地配合 Tesseract 完成任务。

NumPy 可以通过第三方包管理器(比如 pip)来安装:pip install numpy

处理格式规范的文字

例如通过运行Tesseract,读取文件并把结果写到一个文本文件中:

tesseract text.tif textoutput | cat test.txt

Tesseract 最大的缺点是对渐变背景色的处理。利用Pillow 库,我们可以创建一个阈值过滤器来去掉渐变的背景色,只把文字留下来,从而让图片更加清晰,便于 Tesseract 读取:

from PIL import Image
import subprocess
def cleanFile(filePath, newFilePath): 
    image = Image.open(filePath)
    # 对图片进行阈值过滤,然后保存
    image = image.point(lambda x: 0 if x<143 else 255)
    image.save(newFilePath)
    # 调用系统的tesseract命令对图片进行OCR识别 
    subprocess.call(["tesseract", newFilePath, "output"])
    # 打开文件读取结果
    outputFile = open("output.txt", 'r') 
    print(outputFile.read())
    outputFile.close()

cleanFile("text_2.jpg", "text_2_clean.png")

在提交给 Tesseract 处理之前,那些带标题的、带有大片空白的图片,或者有其他问题的图 片,都应该做预处理。

今天的内容没有特别难,我写的比较简单,爬取网络的图片和验证码识别还没写,先从简单的消化。

欢迎你免费加入我的星球,一起分享,共同成长。

知识星球

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

【实践操作】在iPhone上创建你的第一个机器学习模型

最近的苹果iPhone X发布会,你会看到iPhone X有一些很酷的功能,比如FaceID,Animoji和AR。我们需要弄明白建立这样一个系统需要什么。 当...

3666
来自专栏CSDN技术头条

基于Spark的大规模机器学习在微博的应用

众所周知,自2015年以来微博的业务发展迅猛。如果根据内容来划分,微博的业务有主信息(Feed)流、热门微博、微博推送(Push)、反垃圾、微博分发控制等。每个...

3327
来自专栏ATYUN订阅号

【学术】如何在15分钟内建立一个深度学习模型?

我们正在开源Lore,它是一个框架,可供机器学习研究人员使用。 Lore地址:https://github.com/instacart/lore 机器学习常常给...

5087
来自专栏PPV课数据科学社区

《Kaggle项目实战》 泰坦尼克:从R开始数据挖掘(一)

摘要: 你是否为研究数据挖掘预测问题而感到兴奋?那么如何开始呢,本案例选自Kaggle上的数据竞赛的一个数据竞赛项目《泰坦尼克:灾难中的机器学习》,案例涉及一...

3556
来自专栏Soul Joy Hub

tensorflow架构

原文 : http://blog.csdn.net/stdcoutzyx/article/details/51645396 Basic Concepts 张量(...

3538
来自专栏深度学习入门与实践

用Tensorflow让神经网络自动创造音乐

本文禁止转载,禁止用于各类讲座及ppt中,违者必究   前几天看到一个有意思的分享,大意是讲如何用Tensorflow教神经网络自动创造音乐。听起来好好玩有木有...

3439
来自专栏AI科技大本营的专栏

Dropbox如何使用机器学习从数十亿图片中自动提取文字

【导读】提到 Dropbox,大家可能都知道这是一个文件同步、备份、共享的云存储软件。其实 Dropbox 可以实现的功能远不止这些。今天就为大家介绍 Drop...

3312
来自专栏算法+

基于RNN的音频降噪算法 (附完整C代码)

前几天无意间看到一个项目rnnoise。 项目地址: https://github.com/xiph/rnnoise 基于RNN的音频降噪算法。 采用的是 GR...

2.1K5
来自专栏ATYUN订阅号

深度学习图像识别项目(下):如何将训练好的Kreas模型布置到手机中

今天,我们将这种经过训练的Keras模型部署到iPhone手机或者说iOS的APP中,在这里我们使用CoreML,这 是一种易于使用的Apple应用程序机器的学...

2623
来自专栏吉浦迅科技

【入门篇】Jetson TX2深度学习Inference初体验

前面如果已经在Jetson TX2安装好JetPack和Caffe(【入门篇】一个小白在Jetson TX2上安装caffe的踩坑之旅 ),我们接下来可以尝试在...

1.1K8

扫码关注云+社区

领取腾讯云代金券