从图像中提取文本是一项非常有用和实用的技术,它可以帮助我们快速处理大量的图像文件,并获取到其中的文本信息。下面是通过Python从图像中提取文本的完整攻略:
步骤一:安装依赖
首先需要安装一些必要的Python库:
- pytesseract:用于OCR(Optical Character Recognition,光学字符识别)功能
- pillow:用于图像处理
可以使用pip安装这些库:
pip install pytesseract
pip install pillow
步骤二:图像预处理
在使用OCR提取文本之前,需要对图像进行预处理,以提高识别准确度。预处理的方法多种多样,常用的预处理包括:
- 二值化(将图像转换成黑白图):可以使用threshold或adaptive_threshold方法进行二值化。
- 降噪:可以使用去除噪点、平滑滤波,或者使用边缘检测等方法进行降噪。
以下是一个基本的图像预处理思路:
from PIL import Image
im = Image.open('test.jpg')
# 二值化处理
im = im.convert('L')
im = im.point(lambda x: 0 if x < 128 else 255)
# 降噪处理
im = im.filter(ImageFilter.MedianFilter())
步骤三:OCR提取文本
使用pytesseract库进行OCR提取文本:
import pytesseract
text = pytesseract.image_to_string(im, lang='chi_sim')
print(text)
其中,image_to_string()
方法接受一个PIL Image对象,并返回提取出来的文本。lang
参数指定使用的语言,默认为英文。
示例一:从图片中提取英文文本
from PIL import Image
import pytesseract
im = Image.open('test.png')
# 二值化处理
im = im.convert('L')
im = im.point(lambda x: 0 if x < 128 else 255)
# 降噪处理
im = im.filter(ImageFilter.MedianFilter())
# OCR提取文本
text = pytesseract.image_to_string(im)
print(text)
示例二:从图片中提取中文文本
from PIL import Image
import pytesseract
im = Image.open('test.png')
# 二值化处理
im = im.convert('L')
im = im.point(lambda x: 0 if x < 128 else 255)
# 降噪处理
im = im.filter(ImageFilter.MedianFilter())
# OCR提取文本
text = pytesseract.image_to_string(im, lang='chi_sim')
print(text)
以上就是用Python从图像中提取文本的完整攻略,通过预处理和OCR技术,我们可以从图像中提取出真正有用的文本信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解如何用Python从图像中提取文本 - Python技术站