Node+OCR(图像文字识别)

前端(二十五)——前端实现 OCR 图文识别的详细步骤与示例代码 什么是OCR?它是一种将印刷体和手体文字转换为可编辑和可搜索的电子文本的技术。OCR通过将图像或扫描文件中的文字识别并转录成机器可读的文本格式,从而实现自动化的文字识别和提取。OCR技术可以应用于各种场景,包括文字文档的扫描与转录、数字化图书馆、自动化数据录入、机器翻译、自动化表单填写等。OCR技术可以极大地提高处理文档和数据的效率,使得文字信息更容易访问和利用。在现代应用程序中,OCR(Optical Character Recognition)技术被广泛应用于将图像转换为可编辑的文本数据。 阅读详情
AI摘要

本文介绍了一个基于Node.js和Express框架的简单应用,该应用利用百度的文字识别SDK处理图片中的文字信息。通过前端上传图片,后端进行文字识别处理,并返回结果。

开发目的

这算是node应用的第二个小应用吧,主要目的是熟悉node和express框架。原理很简单:在node搭建的环境下引用第三方包处理图片数据并返回给前台信息。
实现效果,百度提供的图片识别,经过测试识别车牌号等规范文字数字还是比较准确的

环境需求

1.Express 是一个非常流行的node.js的web框架。基于connect(node中间件框架)。提供了很多便于处理http请求等web开发相关的扩展。
2.OCR:
通用文字识别 Node SDK目录结构:


├── src
    │  ├── auth                                //授权相关类
    │  ├── http                                //Http通信相关类
    │  ├── client                              //公用类
    │  ├── util                                //工具类
    │  └── const                               //常量类
    ├── AipOcr.js                      //通用文字识别交互类
    ├── index.js                               //入口文件
    └── package.json                           //npm包描述文件
   

支持 node 版本 4.0+
直接使用node开发包步骤如下:
1.在官方网站下载node SDK压缩包。
2.将下载的aip-node-sdk-version.zip解压后,复制到工程文件夹中。
3.进入目录,运行npm install安装sdk依赖库
4.把目录当做模块依赖
其中,version为版本号,添加完成后,用户就可以在工程中使用通用文字识别 Node SDK。
直接使用npm安装依赖:
npm install baidu-aip-sdk(尝试没有成功)

AipOcrClient是Optical Character Recognition的node客户端,为使用Optical Character Recognition的开发人员提供了一系列的交互方法。
用户可以参考如下代码新建一个AipOcrClient:

var AipOcrClient = require("baidu-aip-sdk").ocr;
// 设置APPID/AK/SK
var APP_ID = "你的 App ID";
var API_KEY = "你的 Api Key";
var SECRET_KEY = "你的 Secret Key";
var client = new AipOcrClient(APP_ID, API_KEY, SECRET_KEY);

express搭建就不再做详细介绍了,上一篇博客已有哦~~

功能实现

前端上传图片后端处理:


router.route("/uploadPhoto").get(function(req,res){    // 到达此路径则渲染register文件,并传出title值供 register.html使用
    res.render("uploadPhoto",{title:'图片文字识别',message:""});
}).post(function(req,res){
    // 跨域
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");

    let form = new formidable.IncomingForm();
    form.encoding = 'utf-8'; // 编码
    form.keepExtensions = true; // 保留扩展名
    form.maxFieldsSize = 2 * 1024 * 1024; // 文件大小
    form.uploadDir = 'F:/nodejs/ocrCheck/assets/OCR'  // 存储路径
    form.parse(req,function(err,fileds,files){ // 解析 formData数据
        if(err){ return console.log(err) }

        let imgPath = files.img.path // 获取文件路径
        let imgName = "F:/nodejs/ocrCheck/assets/OCR/test." + files.img.type.split("/")[1] // 修改之后的名字
        let data = fs.readFileSync(imgPath) // 同步读取文件

        fs.writeFile(imgName,data,function(err){ // 存储文件
            if(err){ return console.log(err) }

            fs.unlink(imgPath,function(){}) // 删除文件
            //上传图片成功返回code:1
            //res.json({code:1})
            global.nodeServer.getResult(res,imgName);
        })
    });
});

图片处理核心模块:


module.exports = { 
    getResult : function(res,imgName){
        var image = fs.readFileSync(imgName);
        var base64Img = new Buffer(image).toString('base64');
        client.generalBasic(base64Img).then(function(result) {
            console.log(JSON.stringify(result));
            res.json(result);
        });
    }
}

获取到的base64图片数据和res对象作为阐述传递给ocr提供好的方法,
回调产生的数据将作为结果返回给前端。
####小彩蛋:
nodeJs中commonJs规范如何实现的?

1.Node程序由许多个模块组成,每个模块就是一个文件。Node模块采用了CommonJS规范。
2.module对象,Node内部提供一个Module构建函数。所有模块都是Module的实例。每个模块内部,都有一个module对象,代表当前模块。它有以下属性。

module.id 模块的识别符,通常是带有绝对路径的模块文件名。
module.filename 模块的文件名,带有绝对路径。
module.loaded 返回一个布尔值,表示模块是否已经完成加载。
module.parent 返回一个对象,表示调用该模块的模块。
module.children 返回一个数组,表示该模块要用到的其他模块。
module.exports 表示模块对外输出的值。

3.调用:根据模块名称作为对象调用其内自定义的方法即可。

global.nodeServer.getResult(res,imgName);

前端js代码就不贴了 so~easy

效果展示

这里写图片描述

源码:https://github.com/aladdingod/Node_OCR

【Photoshop CEP插件开发实战】基于Node.js的OCR文字识别功能实现 本文详细介绍了如何开发一款基于Node.js的Photoshop CEP插件,实现OCR文字识别功能。通过集成百度AI服务,该插件能将图片中的文字一键转换为可编辑的文本图层,有效解决设计师处理图片文字的痛点,提升工作效率。 阅读详情

相关推荐

Node+OCR实现图像文字识别功能

主要为大家详细介绍了Node+OCR实现图像文字识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

nodejs实现ocr

nodejs实现ocr

没事学点AI小知识 6145

鼎捷T100—二次开发:客制化联络对象维护作业 aooi350

鼎捷T100二次开发,客制化

weixin_52342654的博客 1133

Node.js 如何实现OCR文字识别

OCR (Optical Character Recognition) 是指用光学技术识别文字图像的技术。随着全新的技术出现,OCR 技术已经发展成为一种非常先进的技术,可以从图片或文档中提取文字,这个技术在文本处理和翻译领域占据一席之地。本文将介绍如何使用 Node.js 来实现 OCR 技术,并给出一些实用的示例代码。

weixin_50814640的博客 4839

光度立体三维重建——光源标定

光源标定的目的是为了确定光源方向或强度,一般利用物体表面的明暗信息、阴影信息或者反射特性三类信息中的其中一种即可,也可以将三种信息结合。采用不同标定物,是利用不同标定物的反射特性获取更加精确的光源信息。

wfengzi5的博客 1561

Rapid SCADA MQTT

一、配置RapidSCADA 1、准备KpMqtt.dll、Jint.dll库文件,从网盘下载。 2、将以上两个文件拷贝到SCADA安装目录的Comm/KP目录下,如下: C:\SCADA\ScadaComm\KP 3、新建SCADA项目 4、新建Line 5、新建Device 6、拷贝Config目录下的KpMqtt_001.xml文件、KpMqtt_Job.js文件到项目Comm\Config下,如下示例链接 C:\SCADA\Projects\MQTTProject\Instances\Defau

mumanquan1的博客 3008

【亲测免费】 使用Node.js实现OCR识别:一个实用的示例项目解析

使用Node.js实现OCR识别:一个实用的示例项目解析 在这个数字化的世界中,光学字符识别(Optical Character Recognition, OCR)技术已经成为数据提取和自动处理文本的重要工具。今天,我们将深入探讨一个由开发的Node.js OCR演示项目,它不仅展示了如何在Node.js环境中集成OCR功能,还提供了易于理解的代码示例,帮助开发者快速上手。项目链接如下: <...

gitblog_00058的博客 1821

Python学习第1天:初识Python

Python 作为目前最流行的编程语言之一,凭借其简洁优雅的语法和强大的生态系统,成为了无数开发者的首选。本系列文章将带你从零基础入门,逐步掌握 Python 编程的核心技能。今天我们先来认识 Python,并安装好开发环境。Python(英式发音:/ˈpaɪθən/;美式发音:/ˈpaɪθɑːn/)是由荷兰人吉多·范罗苏姆(Guido von Rossum)发明的一种编程语言,是目前世界上最受欢迎和拥有最多用户的编程语言。

tigerhhzz的博客 435

【亲测免费】 node-tesseract-ocr:图像文字识别的Node.js解决方案

node-tesseract-ocr:图像文字识别的Node.js解决方案 项目介绍 node-tesseract-ocr 是一个基于 Node.js 的开源图像文字识别库,它封装了 Tesseract OCR 引擎,使得开发者能够轻松地将光学字符识别(OCR)功能集成到 Node.js 应用程序中。通过这个库,用户可以快速地从图像中提取文字,支持多种图像格式和语言。 项目技术分析 node-te...

gitblog_01199的博客 1093

OpenCV入门(一)Python环境的搭建

因为有点Python基础,并且Python是比较好入门的编程语言,所以,机器视觉后面打算在Python这个平台下进行。

小幽余生不加糖 8123

【RT-DETR实战】117、华为昇腾CANN部署探索:从模型转换到推理踩坑实录

本文总结了RT-DETR模型在昇腾310B芯片上部署的关键挑战与解决方案。主要遇到四大问题:1)模型转换时需注意ONNX导出设置,建议先固定尺寸验证;2)内存布局差异导致推理异常,需精确匹配NHWC/NCHW格式;3)流水线并发优化中内存复用和异步处理是关键;4)调试阶段需利用专用工具逐层比对。作者提出六条实用建议,包括小尺寸验证、预处理对齐、内存池设计等,强调部署是持续适配过程,需建立完整的测试体系应对工具链迭代。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 195

JavaScript跨平台OCR引擎:Tesseract.js实现浏览器与Node.js图像文字识别

Tesseract.js是一个纯JavaScript实现的OCR(光学字符识别)库,能够在浏览器和Node.js环境中直接从图像中提取超过100种语言的文字。该项目通过WebAssembly技术将经典的Tesseract OCR引擎移植到JavaScript生态,为前端开发者提供了无需后端依赖的图像文字识别解决方案,广泛应用于文档数字化、表单处理、内容提取等场景。 ## 🎯 解决传统OCR的跨

gitblog_00452的博客 254

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2103

JavaScript OCR实战:5分钟掌握Tesseract.js图像文字识别

还在为手动输入图片中的文字而烦恼吗?想要快速构建智能文字提取应用却不知从何入手?今天,让我们一起探索纯JavaScript OCR库Tesseract.js的强大功能,教你如何在5分钟内搭建专业的图像文字识别系统。 ## 问题解决:为什么选择JavaScript OCR解决方案 传统OCR工具往往需要复杂的桌面安装和环境配置,而Tesseract.js打破了这一限制。作为纯JavaScript

gitblog_00740的博客 779

在 SAP HANA 与 HANA Cloud 中,用 SQL DDL 创建数据库视图:从设计时工件到运行时对象的全链路实践

本文介绍了在SAP HANA中通过HDI容器使用DDL定义视图的方法。主要内容包括:1)采用.hdbview设计时工件存储视图定义,构建时自动转换为运行时视图,实现版本控制和权限隔离;2)开发前需准备HDI容器、MTA项目及配置.hdiconfig文件;3)详细说明.hdbview语法结构,重点讲解WITH READ ONLY和WITH STRUCTURED PRIVILEGE CHECK的使用场景;4)提供了从创建文件到构建验证的完整流程示例;5)强调跨容器访问时需通过.hdbgrants为#OO用户授予

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 276

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Tesseract.js:JavaScript环境下的多语言OCR文字识别解决方案

在数字化时代,从图像中提取文字信息已成为众多应用场景的刚需。Tesseract.js作为一款纯JavaScript实现的光学字符识别库,为开发者提供了跨平台的文本识别能力,无需依赖复杂的本地环境配置。 ## 🎯 项目核心价值定位 Tesseract.js能够轻松处理包含文字的各类图像文件,无论是扫描文档、照片还是屏幕截图,都能准确提取其中的文字内容。这个工具特别适合需要批量处理图像、构建自动

gitblog_00273的博客 738

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

用node.js实现验证码简单识别

概述 在验证码识别上,node.js其实也只是打酱油的角色,因为已经有成熟的工具做这个事情,而node只需要做调度就行了。 所需工具 那么介绍一下这些工具吧 Tesseract 开源的 OCR 识别工具,目前由 Google 维护,支持中文,默认的识别率很低哈,特别是中文,但是可以自己提供样本,训练提高识别率。 graphicsmag...

weixin_34120274的博客 822

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Tesseract.js实战指南:纯JavaScript OCR技术实现图像文字提取

当你需要从图像中提取文字时,是否遇到过这些痛点?传统OCR解决方案需要复杂的后端部署、高昂的API调用费用,或者无法处理多语言混合文本?Tesseract.js作为一款纯JavaScript实现的OCR(即光学字符识别,可将图片中的文字转化为可编辑文本)库,彻底改变了这一现状。本文将通过"技术价值-实践路径-深度探索"三段式架构,带你全面掌握这项强大技术,让你在10分钟内即可实现专业级图像文字识别

gitblog_00056的博客 136

推荐文章:探索OkraByte,JavaScript世界的纯OCR引擎

推荐文章:探索OkraByte,JavaScript世界的纯OCR引擎 在数字化时代的浪潮中,文本识别技术成为了连接物理与数字世界的关键桥梁。今天,我们为您揭开一个令人兴奋的开源项目——OkraByte的神秘面纱。这是一款专为Node.js打造的纯JavaScript OCR(光学字符识别)库,为开发者提供了高效便捷的文字识别解决方案。 项目介绍 OkraByte,由技艺高超的程序员Yosuke ...

gitblog_00658的博客 365

如何使用Tesseract.js实现高效图像文字提取:完整指南

Tesseract.js是一个纯JavaScript OCR库,能够从图像中提取超过100种语言的文字。作为GitHub加速计划中的重要项目,它为开发者提供了在浏览器和Node.js环境下轻松实现光学字符识别的能力,无需依赖后端服务即可完成图像文字提取任务。 ## 为什么选择Tesseract.js进行OCR识别? Tesseract.js基于Tesseract OCR引擎的WebAssemb

gitblog_00179的博客 460

【前端实战】手把手教你实现图片文字识别工具(百度OCR + Node.js)

本文介绍了一个基于百度OCR API的图片文字识别系统。系统采用前后端分离架构,前端使用HTML+CSS+JavaScript构建用户界面,后端基于Node.js+Express实现服务器逻辑。用户上传图片后,系统将图片转换为Base64格式,调用百度OCR API进行文字识别,支持中英文混合识别,并可将结果一键复制。项目详细介绍了从注册百度开发者账号、获取API密钥到前后端代码实现的完整流程,包含服务器搭建、OCR接口调用、前端页面设计等关键环节,最后提供了系统运行测试方法。该系统具有良好的跨平台性和易用

lkz 454

如何在10分钟内上手node-tesseract?完整安装与配置教程

node-tesseract是一个简单的Tesseract OCR包装器,能帮助开发者轻松实现图片文字识别功能。本文将带你快速掌握node-tesseract的安装与基础使用方法,让你在短时间内就能体验OCR技术的魅力。 ## 📋 准备工作:安装Tesseract OCR引擎 node-tesseract依赖Tesseract OCR引擎,需要先安装它才能正常工作。 ### 1. 安装Te

gitblog_00202的博客 1023

node关于node-tesseract模块的使用

1.下载tesseract,github上那个我没搞明白,我是百度搜了个安装包装上的 2.装好后配一下环境变量就可以用了,命令行输入tesseract -v进行测试 3.上两步都是必须的,否则使用模块会报错大概是<?>的bug 4.在项目中引入 const tesseract = require("node-tesseract"); 5.到这步就差不多了,附一个官方的dem...

imoo的笔记 2078

基于 Tesseract.js 的藏文文字识别系统

基于Tesseract.js开发的藏文OCR识别库,支持浏览器和Node.js双平台。支持多格式图片/PDF识别、离线多线程处理、结果导出等。项目采用WebAssembly优化性能,通过Worker实现异步处理,v6版本解决了内存泄漏问题。提供模块化API和丰富示例,支持藏文文本精准提取(如测试图片中的政府文件、书籍内容等场景)。开发者可快速集成到Web或服务端应用,满足藏语数字化处理需求。

qq_41139540的博客 1167

如何快速实现离线OCR文字识别?PaddleOCR-json的终极使用指南

PaddleOCR-json是一款基于PaddleOCR的离线图片文字识别命令行程序,支持Windows和Linux系统,以JSON字符串形式输出识别结果,方便其他程序调用。该项目由PaddleOCR C++编译而成,提供Python、Node.js、PowerShell等多种语言API,让无C++基础的开发者也能轻松集成OCR功能。 ## ???? 为什么选择PaddleOCR-json?核心优势...

gitblog_00538的博客 371
上一篇: Node第一个应用
下一篇: flex布局语法教程
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值