威尼斯手机平台登陆-官方网站登录

威尼斯手机平台登陆为您带来世界三大博彩公司最新相关资讯,威尼斯官方网站登录充分考虑到不同地域网民的不同需求,威尼斯手机平台登陆良好的用户界面,人性化的操作,实用的功能设计使其广泛受到欢迎,推动实体出版、影视、动漫、游戏等相关文化产业的发展。

您的位置:威尼斯手机平台登陆 > 威尼斯在线注册平台 > 以致支出 Laravel,涉及OC揽胜极光的示范项目也许满含

以致支出 Laravel,涉及OC揽胜极光的示范项目也许满含

发布时间:2020-03-04 19:11编辑:威尼斯在线注册平台浏览(64)

    本文由码农网 – 邱康原创翻译,转发请看清文末的转发需求,接待参与大家的付费投稿布署!

    本学科翻译自PyImageSearch丹麦语原作

    一、为什么须要搭建景况

      为了消除蒙受不统一难点,所以要搭建这么个玩具

    Optical Character Recognition (OC中华VState of Qatar即光学字符辨识是把打字与印刷文本转换来一个数字代表的进程。它有五花八门的其实应用–从数字化印制图书、创设发票的电子记录,到车牌识别以至破解基于图像的验证码。

    威尼斯在线注册平台 1Tesseract OCR

    二、步骤

      Laravel对情形具备须求(不行使Homestead情况下),具体仿效官方网站

       使用Homestead步骤

    威尼斯在线注册平台 2

    上周的博客内容,大家上学了怎么设置Tesseract去做OC福特Explorer识别。

      1. Homestead、VirtualBox、Vagrant

        摘要:

        Laravel 致力于让漫天 PHP 开采体验变得其乐融融, 包蕴你的本土开拓条件。 Vagrant 提供了一种轻便,温婉的不二等秘书诀来保管和配置虚构机。 Laravel Homestead 是多少个法定预封装的 Vagrant box,它为您提供了二个两全的支付景况,而没有供给在本地机械安装 PHP 、Web 服务器和任何服务器软件。不用挂念会搞乱你的操作系统!Vagrant boxes 是二遍性的。假若现身难题,你能够在几分钟国内发售毁并创造 Box! Homestead 能够运作在此外 Windows,Mac,或 Linux 系统,它包涵了 Nginx web 服务器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,甚至开垦 Laravel 应用程序所必要的事物。——摘自后盾人向军大伯(网址晋级中,前期补链接)

    Tesseract是三个能促成OCLacrosse的开源项目。你能在*Nix系统,Mac系统和Windows系统上运营那个项目,可是一旦使用三个库,大家就能够在PHP项目中应用它了。本学科的指标是教您如何运用。

    下一场大家经过一些小图片示例去采取Tesseract测量试验和评估那个OCCRUISER引擎的性质。

       1. 1VirtualBox

        VirtualBox 是 Oracle 公司的开源设想机软件。Virtual博克斯可以称作是最强的无需付费虚构机软件,它不但功用齐全,并且品质也很杰出!VirtualBox帮衬半数以上盛行的系列,如:Mac, Windows, Linux 等。

    安装

    我们的结论显示,Tesseract在前程文本和背景观区分的可怜明显的图纸上干活相当好。实际上,保证那个项目标划分只怕极具挑战性。由此,咱们赞成于训练特定领域的图像分类器和检查评定器。

       1.2Vagrant

        Vagrant 是用来管理设想机的工具,扶植当前主流的虚构机系统如 VirtualBox、VMware、AWS 等。Vagrant 的首要功能是提供三个可布署、可移植和复用的软件条件。Vagrant 让您通过编写制定贰个 Vagrantfile 文件来调整设想机的启航、虚拟机互连网境况的配备、设想机与主机间的文件分享,以致运维后自行实施一些计划脚本,如自行试行八个Shell Script 来设置一些少不了的开辟工具,如安装配备MySQL、PHP,甚至是活动配置 Nginx 站点。那意味着,在一个三人付出的档案的次序中,你只供给协同 Vagrantfile 文件,就足以确认保障涉企项目标各种人分头的机械上具备同等的费用场境。 可以在底下网址上追寻需求的vagrant box

    准备

    为了让职业变得简单和平等的, 大家将利用虚构机(本文使用Vagrant)来运作应用程序,那会提到到安装PHP和Nginx,大家将设置Tesseract来分别演示进度。倘若你想和谐依照现存Debian-based系统安装Tesseract,你可以跳过下某个—或许查看the README来获得在其余*nix上,Mac系统恐怕Windows的安装辅导.

    唯独,在我们供给将OCGL450应用于大家丹舟共济的类型的情形下,大家精通什么通过Python编制程序语言访谈Tesseract OCWrangler相当重大(前提是大家得以赢得Tesseract所需的精美,干净的分层)。

       1.3Homestead box

        Homestead是一个合法预封装的 Vagrant box,它为你提供了八个到家的花费条件,而没有必要在地点机械安装 PHP 、Web 服务器和其余服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。假使现身难题,你能够在几分钟国内发卖毁并创建Box!内置软件:Ubuntu 16.04、Git、PHP 7.2、PHP 7.1、Nginx、Apache 、MySQL ……

    配置Vagrant

    为了安顿Vagrant以跟上本课程,达成如下步骤。或然你也能够大致的从Github获得代码。

     

    输入以下命令来下载Homestead Improved Vagrant构造到一个名称为orc的文本夹:

    git clone https://github.com/Swader/homestead_improved ocr
    

    将Nginx配置文件Homestead.yml中的以下代码:

    sites:
        - map: homestead.app
          to: /home/vagrant/Code/Project/public
    

    修改成:

    sites:
        - map: homestead.app
          to: /home/vagrant/Code/public
    

    近似要在hosts文件中增加

    192.168.10.10       homestead.app
    

    事关OC传祺的现身说法项目或然富含[营造移动文书档案扫描程序](

       1.4 联系

        白话领会:

        1.vagrant把带有美妙绝伦内置软件的Laravel/Homestead box(还只怕有任何的Homestead box)打包成三个文书夹成为了叁个镜像box来进展管理

        2.再把这一个镜像box安装到VirtualBox那么些虚构主机个中,但因为它有不小可能率有这几个(vagrant box list来查看),所以必要对在那之中的有血有肉的某二个开展标志,所以这就须要开展安装Homestead管理脚本,下载好之后吧,步向Homestead文件夹中,里面包车型地铁Vagrantfile配置项正是决定着您利用的不得了homestead box,可是付出作者吧,将是将那几个文件援用此外一个文件来打开田间管理的,所以大家必要开展一步操作

    安装Tesseract

    下一步是设置Tesseract

    因为Homestead Improved 使用debian,大家能够在行使vagrant ssh登入虚构机后接纳apt-get 来设置它,轻易运营如下命令:

    sudo apt-get install tesseract-ocr
    

    正如上文提到的,在the README中有任何的操作系统对应教程。

    在本章的别的部分,我们将学习如何设置Tesseract OCR + Python“绑定”,然后编写叁个粗略的Python脚本来调用这么些绑定。在本教程结束时,您将能够将图像中的文本调换为Python字符串数据类型。

       1.5 安装

        Ⅰ在线安装 Homestead Vagrant Box,那样设置下载会比超慢(作者最快网速15M/S反正是暂停啊),能够应用第二种当羊眼半夏件安装格局

    vagrant box add laravel/homestead

        Ⅱ当羊眼半夏件安装 先下载离线 homestead.box,然后实行

    vagrant box add laravel/homestead d:/code/homestead.box

    解释:

    依次执行箭头所指:

              威尼斯在线注册平台 3

              假若那么些盒子不想用,能够开展删减(vagrant box remove laravel/homestead) 其余的homestead box 只须要改名字就好啊~

        III安装Homestead管理脚本

     1 # clone管理脚本 2 # 注意 切换到稳定版本,不是master哟(目前是7.18.0) 3 git clone https://github.com/laravel/homestead.git ~/Homestead 4  5 # 进入家目录 6 cd Homestead/ 7  8 # 因为master不稳定所以切到稳定tag  9 git checkout v7.18.0 10 11 # 创建 Homestead.yaml 配置文件(也就是Vagrantfile引用的文件),所以修改这个文件即可12 ./init.bat13 14 # 如果是本地安装的 homestead.box 则它的版本为0,所以需要修改下面步骤生成的配置文件 ~Homestead/scripts/homestead.rb 以下内容,不然的话启动homestead的时候会进行更新操作15 config.vm.box_version = settings["version"] ||= ">= 0"
    

        Ⅳ SSH秘钥登入(把镜像box安装到VirtualBox后,难免要登录到操作系统个中,所以必要这一步)

    第一步:修改 Homestead.yaml 文件
    
    keys:    - ~/.ssh/id_rsa    - ~/.ssh/id_rsa.pub
    

        注意:步入cd .ssh/后以此文件夹中从未id_rsa id_rsa.pub那多少个公文要扩充下一步操作

        试行 ssh-keygen -t rsa -C "XXX@qq.com",然后合作回车就可以(中间有步骤让设置密码,因为是本土开拓没供给设置,所以一路回车)

       V 文件夹同步安排(大家不或者每一遍须要踏向虚构机来开展代码的书写,所以需求将本机和设想机举行再而三来扩充代码书写)

    1 # map: 本机文件夹路径2 # to: 推送到的虚拟主机路径3 # 这个过程是双向的4 # ~代表家目录(我的电脑是c:/Users/Dumpling)5 folders:6     - map: ~/code7       to: /home/vagrant/code
    

       VI vagrant命令(此时亟待步入Homestead/文件夹)并测验文件同步

        运营虚构机 —— vagrant up(因为在Homestead.yaml文件中的provider: virtualbox所以会安装虚构时机安装到那几个里面)

     1 #启动 如果加上 --provision 选项那么添加的新站点会发布到虚拟机上。 2 cd ~/Homestead && vagrant up 3  4 #关闭 5 vagrant halt 6  7 #通过 SSH 登录 vagrant(需要先启动 vagrant) 8 vagrant ssh 9 10 #查看目前安装的box列表11 vagrant box list12 13 #删除box镜像14 vagrant box remove laravel/homestead15 16 #查看当前 Homestead 虚拟机的状态。17 vagrant status
    

        步向虚构机 —— vagrant ssh

          威尼斯在线注册平台 4

          测量试验文件同步

            当时设想机的code目录是空的,那么步向到家目录的code中创设三个文书看设想机中是或不是同一时间生成一个文本

              威尼斯在线注册平台 5

              本机成立后,查看虚构机情况如下

              威尼斯在线注册平台 6

              同步成功

       VII 使用域名访谈到homestead设想主机

        调节域名的地点在 Homestead.yaml文件中

    1 # map:域名2 # to:域名指向的目录是虚拟机中的这个位置3 sites:4     - map: homestead.test5       to: /home/vagrant/code/public
    

          记得校订本机hosts文件哟(请依据本人的书本自行百度)

      Ⅷ homestead链接数据库

        就唯有端口不等同而已~

          要从主机的数据库客户端连接到 MySQL,就连接纳 127.0.0.1和端口 33060 。账号密码分别是 homestead/secret。

          PHP代码连接端口为 3306

            威尼斯在线注册平台 7

      Ⅸ 全局命令

        Mac/Linux:

          如若iTems未有使用风格包zshrc的话,就在家目录下创办bash_profile文件,如有有的话改过改正zshrc文件

    # 其实就是创建一个函数把进入Homestead/文件夹的操作,以及vagrant命令进行了结合# 函数名可以修改为自己的,我这里是为了方便记忆和区分function homestead(){    ( cd ~/Homestead && vagrant $* )}
    

        Windows:同上(笔者左右依照普通话手册的操作是那八个的~)

    威尼斯在线注册平台 8

        至此呢,有有关homestead的安顿就成功啦~ 假诺有此外不足,请付与提议。

        最后呢 谢谢一下后盾网~ 贼拉好的PHP学习,大家能够去看看啊

        感激饱览~

    测量试验并定制安装

    我们将运用PHP包装,不过早先大家能够在指令行测验Tesseract。

    率先保存以此图形sign.png

    在虚拟机中,试行如下命令来从图纸中读取文字

    tesseract sign.png out
    

    那将要脚下文件夹创制叁个文书:out.txt里面应该有单词:CAUTION

    明日尝试sign2.jpg

    tesseract sign2.jpg out
    

    这一次发生单词Einbahnstral’ie。很接近但不得法—固然图像中的文字卓殊清楚,它未能识别字符ß。

    为了获使Tesseract不荒谬读取字符串,我们需求安装一些新的语言文件—就本例来讲,英文。

    那边有三个周全的可用言语文件列表,但咱们直接下载所需的文件:

    wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.deu.tar.gz
    

    解压:

    tar zxvf tesseract-ocr-3.02.deu.tar.gz
    

    接下来把公文复制到如下目录:

    /usr/share/tesseract-ocr/tessdata
    

    例如

    cp deu-frak.traineddata /usr/share/tesseract-ocr/tessdata
    cp deu.traineddata /usr/share/tesseract-ocr/tessdata
    

    当今我们再度实行原来的一声令下然则要用 –l

    tesseract sign2.jpg out -l deu
    

    “deu” 是República Portuguesa语的 ISO 639-3码.

    此番,文字应该是Einbahnstraße(准确的)。

    能够经过重复上述进程来行使大肆语言。

    本博客分为三有个别。

    布置应用程序

    大家将利用这个库来用PHP使用Tesseract。

    我们将创制二个极简的web应用:客户上传图片,并查看OCCR-V管理结果。我们将采纳Silex microframework 来完结。不要担忧您不熟习它,那一个利用自个儿很简短。

    记住那篇教程的持有代码都能在Github上获得。

    率先步是用Composer来安装正视文件:

    composer require silex/silex twig/twig thiagoalessio/tesseract_ocr:dev-master
    

    下一场创建多少个文件夹:

    - public
    - uploads
    - views
    

    笔者们供给上传表单(viewsindex.twig):

    <html>
      <head>
        <title>OCR</title>
      </head>
      <body>
    
        <form action="" method="post" enctype="multipart/form-data">
          <input type="file" name="upload">
          <input type="submit">
        </form>
    
      </body>
    </html>
    

    亟需叁个结出显示页面(viewsresults.twig)::

    <html>
      <head>
        <title>OCR</title>
      </head>
      <body>
    
        <h2>Results</h2>
    
        <textarea cols="50" rows="10">{{ text }}</textarea>
    
        <hr>
    
        <a href="/">← Go back</a>
    
      </body>
    </html>
    

    现行反革命确立skeleton Silex app (publicindex.php):

    <?php 
    
    require __DIR__.'/../vendor/autoload.php'; 
    
    use SymfonyComponentHttpFoundationRequest; 
    
    $app = new SilexApplication(); 
    
    $app->register(new SilexProviderTwigServiceProvider(), [
      'twig.path' => __DIR__.'/../views',
    ]);
    
    $app['debug'] = true; 
    
    $app->get('/', function() use ($app) { 
    
      return $app['twig']->render('index.twig');
    
    }); 
    
    $app->post('/', function(Request $request) use ($app) { 
    
        // TODO
    
    }); 
    
    $app->run();
    

    若果您在浏览器访问那个动用,你应该能观察一个文件上传表单。如若您在行使Homestead Improved Vagrant,你能够透过如下链接待上访谈该使用。

    http://homestead.app/
    

    下一步是促成文件上传。Silex使得那项工作极其简单;$request包蕴一个files组件,大家可以通过它来赢得自由上传的文件,代码:

    // Grab the uploaded file
    $file = $request->files->get('upload'); 
    
    // Extract some information about the uploaded file
    $info = new SplFileInfo($file->getClientOriginalName());
    
    // Create a quasi-random filename
    $filename = sprintf('%d.%s', time(), $info->getExtension());
    
    // Copy the file
    $file->move(__DIR__.'/../uploads', $filename);
    

    如您所见,我们发出随机文件名来减弱文件名冲突—但在本金和利息用中,我们怎么命名文件是不重要的。一旦大家在地方有一份文件拷贝,我们就足以生出三个Tessearct库的实例,然后进行解析:

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

    在图像上得以完毕OC汉兰达卓越轻易,我们只需调用方法recognize(State of Qatar。

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

    末段我们把结果展现到结果页面:

    return $app['twig']->render(
        'results.twig',
        [
            'text'  =>  $text,
        ]
    );
    

    在一部分图纸上尝试,看看它效益如何。如若你有难堪,能够参见这个

    率先,大家将学会怎么设置pytesseract package 以便大家能够透过Python编制程序语言应用苔丝eract。

    三个其实的例子

    让大家来看OC福特Explorer二个更实用的例证。在本例中,大家尝试在图像中找到一个格式化的电话号码。

    拜访下边一幅图,上传到您的应用:

    威尼斯在线注册平台 9

    结果应当如下:

    :ii‘i
    Customer Service Helplines
    
    British Airways Helpline
    
    09040 490 541
    

    它从未挑出本文文本,那是大家能料到的,因为图片品质太差。就算识别了数码不过也可能有局地“噪声”。

    为了提取相关音讯,犹如下几件事大家得以做。

    您能够让Tesseract 把它的结果限定在确定的字符集内,所以我们报告它只回去数字型的内容代码如下:

    $tesseract->setWhitelist(range(0,9));
    

    但与上述同类有个难点。它时时把非数字字符解释成数字而非忽视它们。譬喻“Bob”恐怕被阐述称数字“808”。

    之所以大家使用两步处理。

    1. 尝试提取大概是电话号码的数字串。
    2. 用二个库更换评估每叁个候选字符,一旦找到叁个实惠电话号码则停止。

    率先步,大家得以用一个大旨的正则表达式。可以用Google电话库来明确八个数字串是或不是是合法电话号码。

    备考:小编已在Sitepoint 写过关于谷歌(Google卡塔尔国电话库的内容。

    让我们给Google电话库增加四个PHP 端口,校正composer.json,增多:

    "giggsey/libphonenumber-for-php": "~7.0"
    

    别忘了进级:

    composer update
    

    当今我们能够写四个函数,输入为二个字符串,尝试提取多少个合法的电话号码

    /**
     * Parse a string, trying to find a valid telephone number. As soon as it finds a 
     * valid number, it'll return it in E1624 format. If it can't find any, it'll 
     * simply return NULL.
     * 
     * @param  string   $text           The string to parse
     * @param  string   $country_code   The two digit country code to use as a "hint"
     * @return string | NULL
     */
    function findPhoneNumber($text, $country_code = 'GB') {
    
      // Get an instance of Google's libphonenumber
      $phoneUtil = libphonenumberPhoneNumberUtil::getInstance();
    
      // Use a simple regular expression to try and find candidate phone numbers
      preg_match_all('/(+d+)?s*((d+))?([s-]?d+)+/', $text, $matches);
    
      // Iterate through the matches
      foreach ($matches as $match) {
    
        foreach ($match as $value) {
    
          try {
    
            // Attempt to parse the number
            $number = $phoneUtil->parse(trim($value), $country_code);    
    
            // Just because we parsed it successfully, doesn't make it vald - so check it
            if ($phoneUtil->isValidNumber($number)) {
    
              // We've found a telephone number. Format using E.164, and exit
              return $phoneUtil->format($number, libphonenumberPhoneNumberFormat::E164);
    
            }
    
          } catch (libphonenumberNumberParseException $e) {
    
            // Ignore silently; getting here simply means we found something that isn't a phone number
    
          }
    
        }
      }
    
      return null;
    
    }
    

    威尼斯在线注册平台,指望注释能解释那么些函数在干什么。注意假如那些库没能从字符串中剖判出二个法定的电话号码它会抛出四个非常。那不是怎么着难题;我们一贯忽视它并继续下叁个候选字符。

    借使大家找到叁个电话号码,大家以E.164的方式再次来到它。那提供了两个国际化的数码,大家能够用来打电话恐怕发送SMS。

    于今大家得以如下使用:

    $text = $tesseract->recognize();
    
    $number = findPhoneNumber($text, 'GB');
    

    我们须要给Google电话库提供多个提示来证实这一个号码是哪些国家的。你也足以改成你自个儿的国度。

    小编们把具备的这个包裹在三个新的路由中:

    $app->post('/identify-telephone-number', function(Request $request) use ($app) { 
    
      // Grab the uploaded file
      $file = $request->files->get('upload'); 
    
      // Extract some information about the uploaded file
      $info = new SplFileInfo($file->getClientOriginalName());
    
      // Create a quasi-random filename
      $filename = sprintf('%d.%s', time(), $info->getExtension());
    
      // Copy the file
      $file->move(__DIR__.'/../uploads', $filename); 
    
      // Instantiate the Tessearct library
      $tesseract = new TesseractOCR(__DIR__ . '/../uploads/' . $filename);
    
      // Perform OCR on the uploaded image
      $text = $tesseract->recognize();
    
      $number = findPhoneNumber($text, 'GB');
    
      return $app->json(
        [
          'number'     =>  $number,
        ]
      );
    
    });
    

    小编们今后有差超级少的API的功底—-也正是JSON响应-—大家可以用来作为一个轻易的移动应用的后端,那款应用能够用来从一幅图中增加关系人,打电话。

    下一场,我们将支付二个总结的Python脚本来加载图片,二值化图片並且将图纸传给苔丝eract OCPRADO 系统。

    总结

    OCSportage有比超多施用——况兼非常轻易整合进你的行使(当先你的预料)。本文中,大家设置了开源OCQashqai包;并使用三个卷入器库,把它构成进三个非常轻便的PHP应用。大家只是触及到了颇负可能性的表面,希望那能给你有的主见,帮您思量怎么在你和谐的施用中运用OC昂Cora。

    终极,大家就要有些演示图像上测量检验大家的OCTiggo管道并查阅结果。

    在Python中绑定Tesseract

    让我们从安装pytesseract初步吧。大家将接纳pip来安装pytesseract

    例如您使用的是设想情状(作者刚烈推荐这样,以便你能够凝集区别的花色),使用workon指令为你的意况布署合适的名号。在此个例子中,大家的虚构情形叫做cv

    $ workon cv
    

    接下去大家来安装 Pillow,多个跟自个儿的pytesseract依赖的PIL端口。

    $ pip install pillow$ pip install pytesseract
    

    *注意:pytesseract 并非提供 贰个实在的Python绑定。而是轻易的提供tesseract库的接口。假如您看它在GitHub的门类你将发掘该库将图像写入磁盘上的不常文件,然后在文书上调用tesseract二进制文件并抓获结果输出。那绝对有个别取巧,但它为大家做到了劳作。*

    让大家三翻五次,查看一些将前程文本从背景中分割出来的代码,然后选用我们新装置的pytesseract。

    使用Tesseract和Python应用OCR

    让大家第一创制叁个名字叫ocr.py 的新文件:

    1. # import the necessary packages2. from PIL import Image3. import pytesseract4. import argparse5. import cv26. import os7. 8. # construct the argument parse and parse the arguments9. ap = argparse.ArgumentParser()10. ap.add_argument("-i", "--image", required=True, help="path to input image to be OCR'd")11. ap.add_argument("-p", "--preprocess", type=str, default="thresh", help="type of preprocessing to be done")12. args = vars(ap.parse_args
    

    2-6行是管理援用库。大家从硬盘加载图片供给使用Image类,当使用pytesseract时索要引进pytesseract库。

    9-14行是拍卖输入的命令参数,我们有2个入参:

    --image: 传入给OCHaval系统的图样路线。

    --preprocess:管理的点子。那几个是可选的开关,近年来那几个参数只选用2个值:thresh或然blur。下边大家将在加载图片,对图片实行二值化并且将结果写入硬盘。

    16. # load the example image and convert it to grayscale17. image = cv2.imread(args["image"])18. gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)19. 20. # check to see if we should apply thresholding to preprocess the21. # image22. if args["preprocess"] == "thresh":23. gray = cv2.threshold(gray, 0, 255,24. cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]25. 26. # make a check to see if median blurring should be done to remove27. # noise28. elif args["preprocess"] == "blur":29. gray = cv2.medianBlur30. 31. # write the grayscale image to disk as a temporary file so we can32. # apply OCR to it33. ilename = "{}.png".format(os.getpid34. cv2.imwrite(filename, gray)
    

    首先,大家将--image参数的图形从硬盘加载到内部存款和储蓄器中(第17行),接着对它实行灰度管理。(第18行

    接下去,依据传入的预管理参数,我们选拔threshold或许blur来管理图片。这里大家恐怕要求充分越来越多的预管理办法管理超过本章范围的事态。

    第22-24行进行threshold方法分别图片的前景和背景。大家透过利用 cv2.THRESH_BINARY 和 cv2.THRESH_OTSU标志管理。更加的多细节,请看在 official OpenCV documentation中查阅*“Otsu’s Binarization”。

    稍后我们将要结果部分中看出,这种阈值管理措施可用来读取叠合在深葡萄紫形状上的暗文本。

    抑或,能够行使模糊方法。 当--preprocess标识设置为blur时,第28-29行进行中值模糊。应用中值模糊能够援救缩短盐和花椒的噪音,再次使苔丝eract更便高满堂确地OCEvoque图像。

    在预管理图片之后,大家应用os.getpid依据Python脚本的进度ID派生一时图片文件名称(33行)。

    行使pytesseract实行OC昂Cora以前的终极一步是将预管理后的图像灰褐写入磁盘,并接收方面包车型客车公文名保存它(第34行)。

    咱俩最后得以选拔Tesseract Python“绑定”将OC奇骏应用于大家的图像:

    36. # load the image as a PIL/Pillow image, apply OCR, and then delete37. # the temporary file38. text = pytesseract.image_to_string(Image.open)39. os.remove40. print41. 42. # show the output images43. cv2.imshow("Image", image)44. cv2.imshow("Output", gray)45. cv2.waitKey
    

    第38行,大家利用pytesseract.image_to_string方法将图纸内容转化为文本字符串。要求当心的是,大家传的是对图纸的一时半刻援引。

    第39行,大家消释了有时文件。

    笔者们在40行打字与印刷出识别的公文到调节台上。在您谐和的施用中,你可能会想在此本上要做一些外加的管理。举个例子:拼写错误检查或然自然语言管理替代在支配台出口文本,这几个剧情我们将要在本章后边讲授。

    最终,第43和44行分别显示原始图片和预管理后的图样。43行的cv2.waitKey 等候指令,等待从键盘输入猖狂字符后退出程序。

    上面让我们初始动手写代码。

    当今创建一个ocr.py的文书,是时候让咱们采纳Python + 苔丝eract 针对有的示范图片进行OC汉兰达识别了。

    在这里个章节中大家将利用如下步骤尝试OCRAV4识别四个示范图片:

    第一,咱们将依据Tesseract库原样运转每种图片。然后,大家将运维ocr.py脚本通过Tesseract完毕预管理文件来管理各样图片。最终,我们将比较那二种艺术的结果并记录任何错误。

    咱俩先是个例证是一个“噪点”图片。此图像包罗大家愿意的前途色是金黄的文书,背景象是一些白色和有些人工生成的暗灰的圆点。葡萄紫的秽迹充任大家算法的“困扰者”。

    威尼斯在线注册平台 10Noisy Image

    咱俩得以接受Tesseract识别原始的、未管理的图形。仿佛我们上一章的内容。

    1. $ tesseract images/example_01.png stdout2. Noisy image3. to test4. Tesseract OCR
    

    Tesseract表现的充足好,在这里个事例中从不此外错误。

    近期让我们料定下大家新的剧本,ocr.py ,同样运维非凡:

    1. $ python ocr.py --image images/example_01.png2. Noisy image3. to test4. Tesseract OCR
    

    威尼斯在线注册平台 11应用ocr.py

    正如你在这里显示屏截图中寓指标那么,阈值图像特别明晰,背景已被剔除。大家的脚本正确地将图像的原委打字与印刷到调节台。

    接下去,让大家在背景中的“盐和黄椒”噪声图像上测量试验苔丝eract和大家的预管理脚本:

    威尼斯在线注册平台 12“盐和黄椒”噪声图像

    我们得以在底下看看tesseract的出口结果:

    1. $ tesseract images/example_02.png stdout2. Detected 32 diacritics3. " Tesséra‘c't Will4. Fail With Noisy5. Backgrounds
    

    不幸的是,Tesseract未遂地对图像中的文本举办OCEnclave识别。

    只是,通过在ocr.py中应用模糊预管理办法,大家得以得到越来越好的结果:

    1. $ python ocr.py --image images/example_02.png --preprocess blur2. Tesseract Will3. Fail With Noisy4. Backgrounds
    

    威尼斯在线注册平台 13混淆预管理办法鉴定区别图片

    马到成功了!通过模糊预管理步骤使Tesseract准确的识别和出口大家目的在于的文书。

    末段,让我们尝试其余一个图形,这几个图片有越来越多的文本:

    威尼斯在线注册平台 14越多文件的图形

    上述图片是自己的书Practical Python and OpenCV 中的*“Prerequisites” *章节截图。让大家来拜谒Tesseract如哪个地点理那些图形:

    1. $ tesseract images/example_03.png stdout2. PREREQUISITES3. 4. In order In make the rnosi of this, you will need (a have5. a little bit of pregrarrmung experience. All examples in this6. book are in the Python programming language. Familiarity7. with Pyihon or other scriphng languages is suggesied, but8. mm required.9. 10. You'll also need (a know some basic mathematics. This11. book is handson and example driven: leis of examples and12. lots of code, so even if your math skills are noi up to par.13. do noi worry! The examples are very damned and heavily14. documented (a help yuu follaw along.
    

    然后选用ocr.py测量试验图像:

    1. $ python ocr.py --image images/example_03.png2. PREREQUISITES3. 4. Lu order to make the most ol this, you will need to have5. a little bit ol programming experience. All examples in this6. book are in the Python programming language. Familiarity7. with Python or other scripting languages is suggested, but8. not requixed.9. 10. You’ll also need to know some basic mathematics. This11. book is handson and example driven: lots of examples and12. lots ol code, so even ii your math skills are not up to par,13. do not worry! The examples are very detailed and heavily14. documented to help you tollow along.
    

    威尼斯在线注册平台 15分辨结果

    留意三个出口中的拼写错误,包涵但不抑低“In”“of”“required”“programming”“follow”

    双方的输出都不相称;可是,有意思的是,预管理版本唯有8个字错误,而非预管理图像有拾八个字错误。 大家的预管理能够帮忙非干净的背景条件下识别文字!

    Python + Tesseract在此边做了三个靠边的行事,但大家再贰次申明了库用作现有的分类器的局限性。

    作者们能够动用Tesseract for OC讴歌ZDX得到能够或可接受的结果,但一流正确度未来自在实际真实世界图像中冒出的特定字体集上的自定义字符分类器上的训练。

    毫无让Tesseract OC讴歌RDX的结果令你失望 - 只需治本您的期望并对Tesseract的展现保持现实。未有真正的“现有”OC奥迪Q7系统可认为您提供康健的结果。

    *注意:一经您的文字被轮换,您可能希望举行额外的预管理,如此前关于改过文本偏斜的博客作品中所推行的那样。不然,假若您对营造[一举手一投足文书档案扫描程序]( )感兴趣,你未来有一个一定不错的OCOdyssey系统能够合两为一到它中。*

    在明日的博客作品中,大家学习了什么样将Tesseract OCPRADO引擎应用于Python编程语言。那使我们能够在大家的Python脚本中运用来自within的OCR算法。

    最大的宿疾是Tesseract本身的局限性。当前景文本中有 干净分割时,苔丝eract效果最佳。

    除此以外,那几个分割须要尽大概高的分辨率输入图像中的字符在划分后不会现身“像素化”。假如字符确实现身像素化,那么Tesseract将难以精确识别文本

    • 纵使接纳在优越条件下捕获的图像,大家也开掘了这点。

    OCGL450即便不再是一项新技艺,但依旧是Computer视觉文献商讨的多个活蹦活跳领域*越来越是在将OCCR-V应用于实际世界的无节制图像时。深度学习和卷积神经网络确实使我们能够拿走更加高的正确度,但大家间距见到“临近完美”的OC奥迪Q5系统还或然有非常长的路要走。其他,由于OC昂Cora在无数域中全数许多应用程序,由此用于OC中华V的有些最棒算法是商业性的,并且必要批准技艺在你自身的门类中接收。

    在将OCHighlander应用于自身的连串时,小编向读者建议的重大提议是首先尝试选择苔丝eract,如若结果不适于,请转到GoogleVision API。

    如果* Tesseract Google Vision API

    *都尚未到手合理的精确度,您也许供给重新评估数据集并分明是否值得培养练习本身的自定义字符分类器

    那越发是如果为真您的多寡集有噪音和/或包蕴您愿意检验和辨识的特定字体。特定字体的身体力行包含信用卡上的数字,在支票尾巴部分找到的帐户和路由号码,或图片设计中运用的程式化文本。

    作者梦想你能在Python和OpenCV上共享有关光学字符识别的一各个博客小说!

    本文由威尼斯手机平台登陆发布于威尼斯在线注册平台,转载请注明出处:以致支出 Laravel,涉及OC揽胜极光的示范项目也许满含

    关键词: