如何在节点中使用OCR实现图像文字识别功能

  介绍

如何在节点中使用OCR实现图像文字识别功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>环境需求

1。表达是一个非常流行的node . js的web框架。基于连接(节点中间件框架)。提供了很多便于处理http请求等网络开发相关的扩展。

2。OCR:

通用文字识别节点SDK目录结构:

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

支持节点版本4.0 +
直接使用节点开发包步骤如下:

1。在官方网站下载节点SDK压缩包。
2。将下载的aip-node-sdk-version。zip解压后,复制到工程文件夹中。
3。进入目录,运行npm安装安装sdk依赖库
4。把目录当做模块依赖

其中,版本为版本号,添加完成后,用户就可以在工程中使用通用文字识别节点SDK。

直接使用npm安装依赖:

npm安装baidu-aip-sdk(尝试没有成功)

AipOcrClient是光学字符识别的节点客户端,为使用光学字符识别的开发人员提供了一系列的交互方法。

用户可以参考如下代码新建一个AipOcrClient:

var  AipOcrClient =,要求(“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);

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

<强>功能实现

前端上传图片后端处理:

router.route (“/uploadPhoto") . get(函数(点播,res){//大敌;到达此路径则渲染登记文件,并传出标题值供,register.html使用   ,res.render (“uploadPhoto"{标题:& # 39;图片文字识别& # 39;,信息:““});   res} . post()函数(点播){   ,//跨域   ,res.header (“Access-Control-Allow-Origin",,“*”);   ,res.header (“Access-Control-Allow-Methods",“PUT、POST、GET、删除、OPTIONS");   ,res.header (“Access-Control-Allow-Headers",,“内容类型,内容长度,,授权,接受,X-Requested-With");      ,let  form =, new  formidable.IncomingForm ();=,form.encoding  & # 39; utf - 8 # 39;,,//,编码=,form.keepExtensions ,真的,,//,保留扩展名=,form.maxFieldsSize  2, *, 1024, *, 1024;,//,文件大?,form.uploadDir  & # 39; F:/nodejs ocrCheck/资产/ocr # 39;,//,存储路径   ,form.parse(要求、功能(呃,提交,文件){//大敌;解析,formData数据   如果才能(err) {, return  console.log (err),}      let 才能;imgPath =, files.img.path //,获取文件路径   let 才能;imgName =,“F:/nodejs/ocrCheck/资产/OCR/测试干净,+,files.img.type.split(“/?[1],//,修改之后的名字   let 才能;data =, fs.readFileSync (imgPath),//,同步读取文件      fs.writeFile才能(imgName、数据、函数(err){//大敌;存储文件   ,,如果(err) {, return  console.log (err),}      ,,fs.unlink (imgPath,函数(){}),//,删除文件   ,,//上传图片成功返回代码:1   ,,//res.json({代码:1})   ,,global.nodeServer.getResult (res, imgName);   })才能   ,});   });

图片处理核心模块:

module.exports =, {,   ,getResult :函数(res imgName) {   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在节点中使用OCR实现图像文字识别功能