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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

相关内容

热门资讯

总算了解开挂脚本!wepoke... 总算了解开挂脚本!wepoker辅助功能开透视工具,总是存在有挂(了解有挂)wepoker透视方法中...
一分钟秒懂透视挂技巧!AAPo... 一分钟秒懂透视挂技巧!AAPoKer辅助功能开透视工具,真是真的有挂(有挂透视)1)AAPoKer免...
技术分享透视挂攻略!智星菠萝德... 技术分享透视挂攻略!智星菠萝德州辅助功能开透视工具,果然有挂(有挂方略)1、超多福利:超高返利,海量...
总算了解透视挂教程!AAPoK... 总算了解透视挂教程!AAPoKer辅助功能开透视工具,都是真的有挂(证实有挂)运AAPoKer辅助工...
新手必备开挂教程!aapoke... 新手必备开挂教程!aapoker辅助功能开透视工具,真是存在有挂(有挂解惑)1、首先打开aapoke...
最新技巧透视挂脚本!微扑克辅助... 最新技巧透视挂脚本!微扑克辅助功能开透视工具,其实是有挂(有挂猫腻)1、金币登录送、破产送、升级送、...
盘点几款透视挂工具!AAPoK... 盘点几款透视挂工具!AAPoKer辅助功能开透视工具,原来有挂(有挂技巧)1、首先打开AAPoKer...
今日焦点开挂方法!德扑圈辅助功... 今日焦点开挂方法!德扑圈辅助功能开透视工具,总是是真的有挂(有挂辅助)该软件可以轻松地帮助玩家将德扑...
发现玩家辅助软件!智星德州扑克... 发现玩家辅助软件!智星德州扑克辅助功能开透视工具,切实存在有挂(真的有挂)1、超多福利:超高返利,海...
交流学习经验开挂工具!WPK辅... 交流学习经验开挂工具!WPK辅助功能开透视工具,一直真的是有挂(有挂辅助)WPK透视方法中分为三种模...