热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

tesseractOCR图像识别插件nodetesr了解一下?

前言该项目诞生于一次爬虫事件,当时一时兴起想把某租房网信息爬下来,前面进行的还是挺顺畅的,但是在租房价格信息上被摆了一道,房屋的价格信息为一个数字图片为底加上偏移量来显示的,和雪碧

《tesseract-OCR 图像识别插件 node-tesr 了解一下?》

前言

该项目诞生于一次爬虫事件,当时一时兴起想把某租房网信息爬下来,前面进行的还是挺顺畅的,但是在租房价格信息上被摆了一道,房屋的价格信息为一个数字图片为底加上偏移量来显示的,和雪碧图一样的实现方式,当然,其中加上了一点小算法,具体如下。

  • 获取数字图片信息和 offset 信息

    • 《tesseract-OCR 图像识别插件 node-tesr 了解一下?》
    • { "offset": [ [1, 4, 2, 8], [5, 1, 7, 8], [5, 1, 3, 8], ... ] }
  • 由 offset 信息加上一点算法得出 position 信息

    • (background-position: xxx px)
  • 以数字图片为背景,加上偏移,append 到价格信息他应该在地方

略一思索,倒也不是什么大事儿,只要加个识别的过程再辅以算法即可。

在实行图像识别的过程中借助到了 google 的开源软件 tesseract-OCR,因为爬虫环境是 node,遂写了一个适用于 tesseract-OCR 最新版本的 node 插件,后续还添加了命令行使用的功能。

演示

命令行使用 — 1

《tesseract-OCR 图像识别插件 node-tesr 了解一下?》

命令行使用 — 2

《tesseract-OCR 图像识别插件 node-tesr 了解一下?》

模块使用 — 1

《tesseract-OCR 图像识别插件 node-tesr 了解一下?》

项目在这里

如果觉得我对你有帮助,不妨给我个 star 吧,蟹蟹~

github node-tesr

正文

命令行使用

想要使用图像识别首先要确保电脑中已经安装了 tesseract-OCR 点击下载。

想要使用命令行建议全局安装

npm install node-tesr -g

tesr --from=./test/output.jpg --to=./output.txt

参数说明

--from 需要识别的图片路径(必须)
--to 若传入此参数会将识别的文字输出到该文件下(非必须,默认会将识别内容输出到命令行)
--l 识别语言,对中文稍微做了点处理,识别简体 --l=chs,识别繁体 --l=cht(非必须,默认为 eng)
--p 见 lib/config.js 里的说明(非必须,默认为 3 自动模式)
--o 见 lib/config.js 里的说明(非必须,默认为 3 自动模式)

模块引入使用

npm install node-tesr

const tesseract = require('node-tesr')
tesseract('./output.jpg', { l: 'eng', oem: 3, psm: 3 }, function(err, data) {
// 此处获得识别内容
console.log(data)
})
// 或者如下也可
tesseract('./output.jpg', function(err, data) {
// 此处获得识别内容
console.log(data)
})

后语

效果

经测试效果还是不错的,但是有一点需要注意一下,上面提到该网站的数字图片是透明底的,测试发现 tesseract-OCR 对透明底的似乎无解,这个时候就需要结合一下 images 这个 node 插件

let images = require('images')
images(500, 100)
.fill(0xff, 0xff, 0xff, 1)
.draw(images('demo.png'), 10, 10)
.save('output.jpg', {
quality: 100
})

将透明底填充为白底即可正常识别

如何提高我的图像识别准确率

老板!我的图像识别率很低怎么破!

来,看这里,这个可以提高图像识别率。

识别算法学习

待办

  • 增加网络地址图片也可识别的功能
  • 使用 then 来处理回调

页脚

代码即人生,我甘之如饴。

我在这里 gayhub@jsjzh 欢迎大家来找我玩儿。

欢迎小伙伴们直接加我,拉你进群一起学习前端呀,记得备注一下你来自哪里哦。

《tesseract-OCR 图像识别插件 node-tesr 了解一下?》

《tesseract-OCR 图像识别插件 node-tesr 了解一下?》


推荐阅读
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了Python函数的定义与调用的方法,以及函数的作用,包括增强代码的可读性和重用性。文章详细解释了函数的定义与调用的语法和规则,以及函数的参数和返回值的用法。同时,还介绍了函数返回值的多种情况和多个值的返回方式。通过学习本文,读者可以更好地理解和使用Python函数,提高代码的可读性和重用性。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
author-avatar
儒雅的活在当下
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有