您当前的位置: 首页 >  爬虫

61 爬虫 - Tesseract处理一些格式规范的文字

杨林伟 发布时间:2019-08-30 11:31:19 ,浏览量:1

你要处理的大多数文字都是比较干净、格式规范的。格式规范的文字通常可以满足一些需求,不过究竟什么是“格式混乱”,什么算“格式规范”,确实因人而异。 通常,格式规范的文字具有以下特点:

  • 使用一个标准字体(不包含手写体、草书,或者十分“花哨的”字体) • 虽然被复印或拍照,字体还是很清晰,没有多余的痕迹或污点
  • 排列整齐,没有歪歪斜斜的字
  • 没有超出图片范围,也没有残缺不全,或紧紧贴在图片的边缘

文字的一些格式问题在图片预处理时可以进行解决。例如,可以把图片转换成灰度图,调 整亮度和对比度,还可以根据需要进行裁剪和旋转(详情请关注图像与信号处理),但是,这些做法在进行更具扩展性的 训练时会遇到一些限制。

格式规范文字的理想示例

在这里插入图片描述 通过下面的命令运行 Tesseract,读取文件并把结果写到一个文本文件中: `tesseract test.jpg text 在这里插入图片描述

cat text.txt 即可显示结果。

识别结果很准确,不过符号^*分别被表示成了双引号和单引号。大体上可以让你很舒服地阅读。

通过Python代码实现

import pytesseract
from PIL import Image

image = Image.open('test.jpg')
text = pytesseract.image_to_string(image)
print text

运行结果:

This is some text, written in Arial, that will be read by
Tesseract. Here are some symbols: !@#$%"&*()
对图片进行阈值过滤和降噪处理

很多时候我们在网上会看到这样的图片: 在这里插入图片描述 Tesseract 不能完整处理这个图片,主要是因为图片背景色是渐变的,最终结果是这样: 在这里插入图片描述 随着背景色从左到右不断加深,文字变得越来越难以识别,Tesseract 识别出的 每一行的最后几个字符都是错的。

遇到这类问题,可以先用 Python 脚本对图片进行清理。利用 Pillow 库,我们可以创建一个 阈值过滤器来去掉渐变的背景色,只把文字留下来,从而让图片更加清晰,便于 Tesseract 读取:

from PIL import Image 
import subprocess

def cleanFile(filePath, newFilePath): 
    image = Image.open(filePath)

    # 对图片进行阈值过滤,然后保存
    image = image.point(lambda x: 0 if x            
关注
打赏
1688896170
查看更多评论
0.0856s