Nicomsoft OCR调用示例(NSOCR)

By admin at 2021-03-07 • 0人收藏 • 367人看过

NISOFT OCR SDK 是一款目前免费图文识别开发库, 目前支持28国语言包括简体和繁体中文识别, 能够识别条形码/二维码, 

图片支持: BMP, JPEG, PNG, TIFF, and GIF. 当然也支持内存图片识别.

识别出的结果可以保存成PDF, PDF/A (PDF/A-1a or PDF/A-1b), RTF, Text or XML

详情请看官方:https://www.nicomsoft.com/products/ocr/features/

我这里测试中文识别, 准确率堪忧!

测试英文识别, 准确率不错!

免费注册码: AB2A4DD5FF2A

相关dll和帮助文档:

链接:https://pan.baidu.com/s/1BvgNmLwqR3NR2QJFD-RnkQ 

提取码:v9wq 


image.png

这个OCR有两种调用方式, 一种是com组件形式, 一种是dll直接引用.

如果用com组件形式, 需要regsvr32 NSOCR.dll 注册下.

com组件形式简单测试代码:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="NSOCR - aardio示例";right=796;bottom=406)
mainForm.add(
button={cls="button";text="加载图片并识别";left=0;top=16;right=171;bottom=46;dl=1;dt=1;z=1};
edit={cls="edit";left=400;top=54;right=797;bottom=406;border=1;db=1;dl=0.5;dr=1;dt=1;multiline=1;z=2};
plus={cls="plus";left=0;top=54;right=397;bottom=406;border={color=-16777216;width=1};db=1;dl=1;dr=0.5;dt=1;repeat="scale";z=3};
progress={cls="progress";left=179;top=17;right=793;bottom=45;dl=1;dr=1;dt=1;edge=1;max=100;min=0;z=4}
)
/*}}*/
 
import fsys.dlg;
import win.timer
var timer = win.timer( mainForm );
timer.setInterval(20); 
thread.set("successFlag", false);

var NsOCR = com.CreateObject("NSOCRLib.NSOCR.1");
var ret = NsOCR.Engine_SetLicenseKey("AB2A4DD5FF2A");
ret = NsOCR.Engine_Initialize();
ret,CfgObj = NsOCR.Cfg_Create();
ret = NsOCR.Cfg_LoadOptions(CfgObj, "Config.dat");
ret,OcrObj = NsOCR.Ocr_Create(CfgObj);
ret,ImgObj = NsOCR.Img_Create(OcrObj);

mainForm.button.oncommand = function(id,event){
    mainForm.progress.pos = 0;
	thread.set("successFlag", false);
	var path = fsys.dlg.open("图像文件|*.png;*.bmp;*.jpg;*.tiff;*.gif","请选择图像文件");
	if(!#path) return;
	mainForm.plus.setBackground(path,false);
	var ret = NsOCR.Img_LoadFile(ImgObj, path);
	
	if(ret>0){
		mainForm.msgboxErr("Err");
	}else {
		ret = NsOCR.Img_OCR(ImgObj, 0, 255, 1);
		timer.enable();
		win.invoke(
			function(){
				while(!thread.get("successFlag")){};	
			} 
		)
		ret,txt = NsOCR.Img_GetImgText(ImgObj, 0);
		mainForm.edit.text = txt;
	}
		
}

timer.onTimer = function(hwnd,msg,id,tick){
    var val = NsOCR.Img_OCR(ImgObj, 0, 0, 3);
    if(mainForm.progress.pos!=val){
    	mainForm.progress.pos = val;
    	if(val>=100){
    		timer.disable();
    		thread.set("successFlag", true);
    	}
    }	
}

mainForm.onClose = function(hwnd,message,wParam,lParam){
    NsOCR.Img_Destroy(ImgObj);
    NsOCR.Ocr_Destroy(OcrObj);
    NsOCR.Cfg_Destroy(CfgObj);
}

mainForm.show();
return win.loopMessage();



登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
苏扬博客:苏扬博客
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
本 站 主 站:Stm32cube中文网
Htmlayout界面在线学习文档
Sciter中文在线文档Sciter在线学习文档
aardio在线手册Aardio在线手册

赞助商:才仁机械
下载站:非凡软件站
Loading...