加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP OCR实战:用Tesseract从图像中读取文字

发布时间:2016-10-17 21:38:30 所属栏目:PHP教程 来源:站长网
导读:副标题#e# OpticalCharacterRecognition(OCR)即光学字符辨识是把打印文本转换成一个数字表示的过程。它有各种各样的实际应用从数字化印刷书籍、创建收据的电子记录,到车牌识别甚至破解基于图像的验证码。 498)this.width=498;' onmousewheel = 'javascript

下一步是实现文件上传。Silex使得这项工作非常简单;$request包含一个files组件,我们可以通过它来获得任意上传的文件,代码:

  1. // Grab the uploaded file 
  2. $file = $request->files->get('upload'); 
  3.  
  4. // Extract some information about the uploaded file 
  5. $info = new SplFileInfo($file->getClientOriginalName()); 
  6.  
  7. // Create a quasi-random filename 
  8. $filename = sprintf('%d.%s', time(), $info->getExtension()); 
  9.  
  10. // Copy the file 
  11. $file->move(__DIR__.'/../uploads', $filename); 

如你所见,我们产生随机文件名来减少文件名冲突—但在本应用中,我们怎么命名文件是不重要的。一旦我们在本地有一份文件拷贝,我们就可以产生一个Tessearct库的实例,然后进行分析:

  1. // Instantiate the Tessearct library 
  2. $tesseract = new TesseractOCR(__DIR__ . '/../uploads/' . $filename); 

在图像上实现OCR相当简单,我们只需调用方法recognize()。

  1. // Perform OCR on the uploaded image 
  2. $text = $tesseract->recognize(); 

最后我们把结果展示到结果页面:

  1. return $app['twig']->render( 
  2.     'results.twig', 
  3.     [ 
  4.         'text'  =>  $text, 
  5.     ] 
  6. ); 

在一些图片上尝试,看看它效果怎样。如果你有困难,可以参考这个

一个实际的例子

让我们来看OCR一个更实用的例子。在本例中,我们尝试在图像中找到一个格式化的电话号码。

看看下面一幅图,上传到你的应用:

PHP OCR实战:用Tesseract从图像中读取文字

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读