热门标签 | 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 了解一下?》


推荐阅读
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • Node.js中子进程的创建与管理详解
    本文深入探讨了Node.js中如何使用child_process模块来创建和管理子进程,包括exec、spawn和fork三种方法的具体应用及其实现细节。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
  • 本文详细介绍了 Node.js 中 Worker.isMainThread 属性的功能、用法及其实例代码,帮助开发者更好地理解和利用多线程技术。 ... [详细]
  • Node.js 入门指南(一)
    本文介绍了Node.js的安装步骤、如何创建第一个应用程序、NPM的基本使用以及处理回调函数的方法。通过实际操作示例,帮助初学者快速掌握Node.js的基础知识。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • 本文深入探讨了Redis中的两种主要持久化方式——RDB(Redis Database)和AOF(Append Only File),并详细解析了两者的实现机制、优缺点以及在实际应用中的选择策略。 ... [详细]
  • 本教程旨在指导开发者如何在Mac上设置React Native的开发环境,以进行iOS应用的开发。文中详细介绍了必要的软件安装步骤,包括Xcode、Homebrew、Node.js、Watchman以及React Native CLI等工具的安装方法。 ... [详细]
  • MQTT协议:轻量级消息传输的基石
    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布/订阅模式的轻量级通信协议,适用于低带宽、高延迟或不可靠的网络环境。该协议基于TCP/IP构建,由IBM在1999年首次推出,旨在通过最小化网络流量和代码量,为远程设备提供高效、可靠的消息传输服务。 ... [详细]
  • 本文探讨了如何解决在使用CoffeeScript定义类时,实例化后对象为空的问题,并提供了解决方案。 ... [详细]
  • 本文详细介绍了如何在Linux系统中安装和配置Node.js,包括从官方下载、编译安装到运行基本示例的全过程。 ... [详细]
  • Node.js 开发入门:环境搭建与配置
    随着Node.js技术的日益成熟及其即将发布的1.0稳定版,越来越多的开发者开始关注并尝试这一高性能的服务器端JavaScript平台。本文将引导读者如何在Windows环境下安装配置Node.js,并介绍一些常用的开发工具和框架。 ... [详细]
  • Shiro功能拓展:登录失败重试次数限制
    本文详细介绍了如何在Apache Shiro框架中实现对用户登录失败重试次数的限制,通过自定义密码匹配器来增强系统的安全性。该方法不仅能够有效防止暴力破解攻击,还能确保合法用户的账户安全。 ... [详细]
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社区 版权所有