Nicomsoft OCR调用示例(NSOCR)

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

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



登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...