python识别图片文字的几种方式

说一说场景,电脑不能装qq 微信后,都没有比较便捷的工具,不方便截图提取文字。目前网上收了一下 ,主要是利用pytesseract进行。这是一个基于 Google 的 Tesseract-OCR 引擎的 Python 封装,是一个功能强大的 OCR 工具(OCR回是Optical Character Recognition的缩写,光学字符识别 的意思。),能够实现图像中文字的识别。无论是从图片中提取文本信息,还是实现图像转文字的自动化处理,pytesseract 都能够轻松胜任。

一、环境准备,库安装

1. 安装 pytesseract 库

首先,我们需要安装 pytesseract 库。在安装之前,请确保你已经安装了 Tesseract OCR 引擎。
下载地址:https://digi.bib.uni-mannheim.de/tesseract/

image.png

安装tesseract ,检验版本是否安装tesseract -v


image.png

2. 读取图片

读取图片路径若有汉字,会识别不到图片,大家可以试试
pytesseract.pytesseract.tesseract_cmd = r'D:\soft\tesseract\tesseract.exe'
image_path = r'D:\develop\demo\screenshot.png'
im=Image.open(image_path)

3. 文字识别

方案①
text = pytesseract.image_to_string(im, lang='chi_sim')
print(text)

方案②
另外介绍一种通过cv2去识别图片的方法,仅供参考,识别准确率各不相同
pytesseract.pytesseract.tesseract_cmd = r'D:\soft\tesseract\tesseract.exe'
image_path = r'D:\develop\demo\screenshot.png'#路径不能带中午
image = cv2.imread(image_path)
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
text = pytesseract.image_to_string(gray_image, lang='chi_sim')
print(text)

方案③easyocr模块
reader = easyocr.Reader(['ch_sim', 'en'])
result = reader.readtext(image_path)
for (bbox, text, prob) in result:
print(f' {text}')

安装easyocr模块,比较麻烦,需要下载对应的大模型
安装库
pip install easyocr -i https://pypi.mirrors.ustc.edu.cn/simple/
执行easyocr.Reader()时需要将模型加载到内存中,需要一定时间,只需要运行一次(会先下载列表中相关的语言包)。可以下载程序到对应目录

image.png

不确定EasyOCR 模型,可以使用多久,目录下有一个lic授权,不知道有没有定义。

对比 一下截图,差异不大,主要还是根据图片内容的复杂性来说,会呈现出不同差异,导致提取的文字不准确。easyocr 属于进阶版吧,后期也将进行优化升级改造


image.png

后期将进行截图+识别方案,目前也没有好的思考,比较简单的方案就是截图保存目录后触发提出功能,
最方面的还是微信方式,截图后点击翻译,在旁边提取对应的文字,欲知后事如何,静待后期分享吧!欢迎一起吐槽,一个不专业的IT狗学习开发的进程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容