一行代码扫出“敬业福”

好吧,我承认有那么一点标题党。不过说起标题党这事儿,咱先来看看支付BAO,最近几天搞得全国人民都不安心工作的“集五福”:

好(shua)好(hou)的“集五福”活动,怎么又叫 AR 了?

我们来让李老板家的百科解释下什么是 AR:

增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。

可是,哥好歹当年在学校也是研究计算机视觉和图形学出身啊。据我所知的 AR 的画风不是应该这样:

或者这样的嘛:

怎么就变成摄像头识别文字了?

看着手中的 App,我不禁开始怀疑,难道我是学了假的 AR……

后来旁边人跟我说,你没看扫到“福”之后有个烟花的效果吗?人家这就是虚实结合!

好吧!这 OCR 文字识别+五毛特效,我也可以分分钟给你搞一个啊。

说干就干。想起咱们教室的“编程实例”中就有一个“验证码识别”的例子,直接改改就行。

顺便再科普一下 OCR:

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程

反正我只是打算识别出“福”字,那么问题就很简单了。装备上别人已经打造好的工具:

  1. 安装 PIL 库

    pip install pillow

  2. 下载安装 ocr 的库,这里我们选择 tesseract-ocr

    https://github.com/tesseract-ocr/tesseract

  3. 下载安装Python 的 tesseract 驱动模块

    pip install pytesseract

  4. 下载 tesseract 的简体中文训练数据集(放在 tessdata 目录里)

    https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata

然后做一张带有文字的图片:

最后,一行代码识别文字(import 啥的当然不算数啦!):

from PIL import Image

import pytesseract

print pytesseract.image_to_string(Image.open('/yout/path/to/fu.jpg'), lang='chi_sim')

搞定。

核心功能都有了,你再加上摄像头拍摄、图像处理、反馈特效,也只是时间问题。大过年的,我也编不下去了。

当然,这种通用 ocr 模块并不总那么靠谱,比如:

正所谓,祸兮福所倚,福兮祸所伏,大概就是这个道理吧……

什么?你说我这个识别太弱了?可是马云爸爸家的也没好到哪里啊!

所以你真以为我会去满世界的找“福”字吗?年轻人啊,还是应该多提高自己的姿势水平哟。

最后,就用这段小代码给大家送上新年祝福。

来年我们一起用代码躁起来!


(0)

相关推荐