亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Node中使用OCR實現圖像文字識別功能

發布時間:2021-05-22 17:30:50 來源:億速云 閱讀:1110 作者:Leah 欄目:web開發

如何在Node中使用OCR實現圖像文字識別功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

環境需求

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);

看完上述內容,你們掌握如何在Node中使用OCR實現圖像文字識別功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻栗坡县| 乾安县| 甘孜县| 漳平市| 灵川县| 阿坝县| 泰宁县| 和硕县| 新兴县| 石门县| 定州市| 灵川县| 华亭县| 广宗县| 苍山县| 云梦县| 贵阳市| 刚察县| 香格里拉县| 绥阳县| 会理县| 镇平县| 望城县| 应城市| 五大连池市| 常熟市| 绥中县| 临城县| 石屏县| 萍乡市| 咸阳市| 林甸县| 恭城| 姜堰市| 江川县| 大悟县| 海林市| 开远市| 嫩江县| 昭平县| 洪泽县|