Atitit 使用js nodejs进行图像处理ocr的解决方案attilax总结
来源:互联网 发布:安全的理财软件 编辑:程序博客网 时间:2024/05/16 06:14
Atitit 使用js nodejs进行图像处理ocr的解决方案attilax总结
1.1. 导出类库以及class的调用 1
1.2. Cli接口处理 varexec = require('child_process').exec; 1
1.3. Stdout的输出接受与乱码处理 1
1.4. 大批量数据下的数据接受exit事件可能在data事件之前执行,使用延时策略ok 2
1.5. 线程sleep的问题,使用setInterval解决setInterval(timeEvent,5000); 3
1.6. 线程池问题,cpu占用100%解决,监控进程数量即可 3
1.7. Code D:\0workspace\atiplat_ee\com.attilax\core\process.js 3
大概是调用ocr类库接口,通过cli接口。。有一些问题一点点的解决了。。
脚本语言在图像处理领域也是一个非常好的一个选择,主流基本语言有js pythonphp等。。Attilax更加的看好js,python的缩进很蛋疼。。脚本语言最大的优点就是不用编译啊,方便修改,体积小巧。部署友好性较好。。
编程语言的可读性与开发效率提升,也是从机器语言>>asm汇编》》native类型语言(vb pb c c++ delphi) >>vm类型语言(java c#) >>script脚本语言(js python php) >>dsl类型语言(halcon matlab脚本等)。。
但是成也编译,败也编译。。为了保护商业机密,源码外漏的脚本语言在商业中还是需要考虑的。。有时只好使用编译型语言了。一般轻编译的vm类型语言java c#.net系列即可满足需求了。。
1.1. 导出类库以及class的调用
function Process()
{
this.dbg=false;
}
try{
module.exports.Process = Process;
}catch(e)
{
}
调用模块
var Prcs= require("./com.attilax/core/process.js");
var prc=newPrcs.Process();
1.2. Cli接口处理 varexec = require('child_process').exec;
1.3. Stdout的输出接受与乱码处理
通过data 和exit事件处理即可。。
var exec= require('child_process').exec;
var exeHandler= exec(cmd, {
encoding: "binary"
});
exeHandler.stdout.on('data',function (stdout_data) {
var str= iconv.decode(stdout_data, 'GBK');
if(this.dbg)
console.log('-----stdout_data data:'+ str);
stdout_data_fun(str);
});
//note ,if many data,,exit event maybe bef the data event ..,in many line data ret .should use timeout ..
exeHandler.on('exit',function (code) {
console.log('---exit code:'+ code);
exit_fun(code);
});
1.4. 大批量数据下的数据接受exit事件可能在data事件之前执行,使用延时策略ok
var cmd="wmic process get name";
this.exec(cmd,function(lines){
},function(code){
// retFun(li);
setTimeout(function(){
retFun(li);
},1000);
});
1.5. 线程sleep的问题,使用setInterval解决setInterval(timeEvent,5000);
要sleep,不然以为js是异步的,会大量占用cpou
1.6. 线程池问题,cpu占用100%解决,监控进程数量即可
prc.listNgrep("tesseract.exe",function(prcs_arr){
console.log("----listNgrep finish..")
console.log(prcs_arr);
});
判断prcs_arr的lenth解决。。在timeevent里面。。
1.7. Code D:\0workspace\atiplat_ee\com.attilax\core\process.js
/**
* Created by Administrator on 2017/1/31.
* ns process
*/
function Process()
{
this.dbg=false;
}
//var Process = function(){}
Process.prototype.list=function()
{
var cmd="";
this.exec(cmd,function(line){
},function(code){
})
}
Process.prototype.exec=function(cmd,stdout_data_fun,exit_fun)
{
var pM= require("../../com.attilax/io/path.js");
// var cmd = 'D:\\0workspace\\Tesseract\\tesseract.exe "@jpg@" "@rztName@" -l chi_sim';
;
console.log('-----cmd data:'+ cmd);
var iconv= require('iconv-lite');
var exec= require('child_process').exec;
var exeHandler= exec(cmd, {
encoding: "binary"
});
exeHandler.stdout.on('data',function (stdout_data) {
var str= iconv.decode(stdout_data, 'GBK');
if(this.dbg)
console.log('-----stdout_data data:'+ str);
stdout_data_fun(str);
});
//note ,if many data,,exit event maybe bef the data event ..,in many line data ret .should use timeout ..
exeHandler.on('exit',function (code) {
console.log('---exit code:'+ code);
exit_fun(code);
});
}
Process.prototype.listNgrep=function(grepWord,retFun)
{
var li=newArray();
var cmd="wmic process get name";
this.exec(cmd,function(lines){
var a=lines.split("\r\n");
for(idxin a)
{
var line=a[idx];
line=line.replace("\r","");
var logstr="line.indexOf_grepWord_, line:"+line;
logstr+=", indexof:"+line.indexOf(grepWord);
logstr+=", rzt:"+(line.indexOf(grepWord)>=0);
console.log(logstr);
var idx2=line.indexOf(grepWord);
if(idx2>=0)
{
console.log("--will add"+line);
li.push(line);
}else{}
}
},function(code){
// retFun(li);
setTimeout(function(){
retFun(li);
},1000);
});
}
try{
module.exports.Process = Process;
}catch(e)
{
}
作者:: 绰号:老哇的爪子claw of Eagle偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者Pious宗教信仰捍卫者 Defender Of the Faith.卡拉卡拉红斗篷 Caracalla red cloak万兽之王
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
Emir Uke部落首席大酋长,
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke 首席cto 奶牛科技首席cto, 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke 户外运动协会理事长 度假村首席大村长 uke交友协会会长
uke出版社编辑总编
转载请注明来源:attilax的专栏 ?http://blog.csdn.net/attilax
--Atiend v6
- Atitit 使用js nodejs进行图像处理ocr的解决方案attilax总结
- Atitit js nodejs 图像处理压缩缩放算法 attilax总结
- Atitit js canvas的图像处理类库attilax总结与事业
- Atitit 图像处理的心得与疑惑 attilax总结
- Atitit 图像处理的摩西五经attilax总结
- Atitit.java图片图像处理attilax总结
- Atitit MATLAB 图像处理attilax总结
- Atitit 图像处理类库大总结attilax qc20
- Atitit 图像处理 halcon类库的使用 范例边缘检测 attilax总结
- Atitit 软件项目的一整套解决方案(gui界面,中间,存储数据库,图像处理,全文搜索)attilax总结
- Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
- Atitit 图像处理 opencv使用蒙版mask抠图 切割 attilax总结
- Atitit 图像处理30大经典算法attilax总结
- Atitit 图像处理之理解卷积attilax总结
- Atitit MATLAB 图像处理 经典书籍attilax总结
- Atitit 图像处理 调用opencv 通过java api attilax总结
- Atitit 使用h5技术( html css js)制作桌面程序gui界面解决方案attilax总结
- Atitit. Derby的使用总结attilax
- 交换与路由知识点总结(一)
- memset函数的使用原理
- 关于ping与tracert网络命令详解
- codevs 天梯 能量项链 dp
- Atitit 局部图查找大图 方法 与 说明
- Atitit 使用js nodejs进行图像处理ocr的解决方案attilax总结
- iOS项目的完整重命名方法图文教程
- 系统安全篇
- python open() 打开文件出现 IOError: [Errno 22] invalid mode ('r') or filename:
- Atitit js nodejs 图像处理压缩缩放算法 attilax总结
- n个数的排序 (sdut oj)
- [网络流24题][洛谷P2762]太空飞行计划问题
- BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊
- 二维图像中Mat::setp、Mat::step1理解