5分钟用Python搭建一个OCR服务器,可以直接截图中提取文本_读取图片上的文字 私有服务器(2)
创始人
2025-01-17 14:32:20
0次

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

此处构建了一个Leptonica的映像,这部分的详细信息参考Leptonica的解释。

环境变量

我们需要设置一个环境变量来访问Tesseract数据:

$ export TESSDATA_PREFIX=/usr/local/share/  

Tesseract包

最后安装一下Tesseract相关的语言包:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OK,Tesseract也安装好了,可以CLI来测试一下。更多的信息可以参考docs(超链接)。但是,我们还需要一个Python环境。所以,接下来安装一个能够接受以下两种请求的Flask服务器:

  1. 接受图像URL

  2. 能够对图像进行字符识别

搭建Web服务器

最有趣的事情来了!首先,我们需要构建一种通过Python和Tesseract交互的方式。我们可以使用popen,但是那不是python的风格。所以,我们可以使用一个非常小但是功能非常强大的Python包将Tesseract封装起来——pytesseract(超链接)。

想要快点的话,就运行_app.sh脚本,否则,点击这里(超链接)获取代码/结构的模板,然后运行一下命令:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:Flask模板(有Real Python(超链接)维护)是一个获取简单的具有Python风格的服务器的非常棒的库。本文将它用来作为基本程序。点击这里(超链接)获取更多信息。

安装OCR引擎

现在,我们需要用pytesseract来创建一个类来读取图片。在flask_server目录下创建一个新的文件ocr.py,写入如下代码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

非常好!

主方法process_image()的功能是锐化图像文本。

现在,这个模块已经可以用了。

可选项:为你的OCR引擎创建一个CLI工具

做了这么多繁琐配置工作,让我们来创建一个CLI工具来调节一下心情吧。在flask_server目录下创建一个新的文件cli.py,写入如下代码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

非常简单。之后我们就能看到从我们的OCR引擎中输出到标准输出STDOUT上的文本了。执行python flask_server/cli.py来试一下吧。

回到服务器

既然我们已经安装好了OCR引擎,接下来该准备输出了。讲下面的代码加入到

app.py文件:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

确保引入的下列包是最新的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后,添加一行API版本号:

_VERSION = 1 # API version  

从代码中可以看到,我们以PIL中Image文件对象的方式把JSON的响应传入引擎的process_image()方法中。并且,就目前而言,它只支持.jpg图片。

注意:如果PIL包没有安装的话,可以用Pillow包来代替。PIL有一些问题还没有解决,Python社区对它的看法也不统一,详细情况可以自行Google。

测试

运行你的程序:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后,在另外一个终端运行:

$ curl -X POST http://localhost:5000/v1/ocr -d '{"image_url": "some_url"}' -H "Content-Type: application/json"  

例子

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前端

现在后端OCR引擎的API已经准备好了,我们可以增加一个基本的前端来使用这些API,并将结果通过AJAX和jQuery添加到DOM中。这部分内容本文就不讲了,详见这里(超链接)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用下面的样本来测试一下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总结

希望大家喜欢照片教程。

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...