一行代码扫出“敬业福”
好吧,我承认有那么一点标题党。不过说起标题党这事儿,咱先来看看支付BAO,最近几天搞得全国人民都不安心工作的“集五福”:
好(shua)好(hou)的“集五福”活动,怎么又叫 AR 了?
我们来让李老板家的百科解释下什么是 AR:
增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。
可是,哥好歹当年在学校也是研究计算机视觉和图形学出身啊。据我所知的 AR 的画风不是应该这样:
或者这样的嘛:
怎么就变成摄像头识别文字了?
看着手中的 App,我不禁开始怀疑,难道我是学了假的 AR……
后来旁边人跟我说,你没看扫到“福”之后有个烟花的效果吗?人家这就是虚实结合!
好吧!这 OCR 文字识别+五毛特效,我也可以分分钟给你搞一个啊。
说干就干。想起咱们教室的“编程实例”中就有一个“验证码识别”的例子,直接改改就行。
顺便再科普一下 OCR:
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
反正我只是打算识别出“福”字,那么问题就很简单了。装备上别人已经打造好的工具:
安装 PIL 库
pip install pillow
下载安装 ocr 的库,这里我们选择 tesseract-ocr
https://github.com/tesseract-ocr/tesseract
下载安装Python 的 tesseract 驱动模块
pip install pytesseract
下载 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 模块并不总那么靠谱,比如:
正所谓,祸兮福所倚,福兮祸所伏,大概就是这个道理吧……
什么?你说我这个识别太弱了?可是马云爸爸家的也没好到哪里啊!
所以你真以为我会去满世界的找“福”字吗?年轻人啊,还是应该多提高自己的姿势水平哟。
最后,就用这段小代码给大家送上新年祝福。
来年我们一起用代码躁起来!