Giter Site home page Giter Site logo

aardio / chineseocr_lite_dll Goto Github PK

View Code? Open in Web Editor NEW
68.0 2.0 20.0 55.75 MB

超轻量级图像中文识别组件 chineseocr_lite 的 DLL 版本,用于 aardio 扩展库,适用于任何支持DLL的语言。

License: GNU General Public License v2.0

C++ 89.36% C 7.25% CMake 0.61% Rich Text Format 2.37% HTML 0.12% Objective-C 0.14% Batchfile 0.11% Shell 0.04%
aardio ocr chineseocr-lite

chineseocr_lite_dll's Introduction

chineseocr_lite_dll

超轻量级图像中文识别组件 chineseocr_lite 的 DLL 版本,用于 aardio 扩展库,适用于任何支持DLL的语言。

感谢 xuncv/chineseocrlite-aardio 提供的 chineseocrlite-aardio 扩展库,让我了解到了 chineseocr_lite 这个优秀的开源组件。但是我在使用 chineseocrlite-aardio 时遇到一些问题,没有找到 DLL 的源代码,翻了一下 chineseocr_lite 的源码也只有 EXE 的项目,所以花了一点时间改造了一个 DLL 版本并开源,DLL 主要用于我重新实现的 aardio 扩展库:string.ocrLite,当然也可以用于任何支持 DLL 的语言。

此 DLL使用 Unicode 路径加载文件( 可解决中文路径下崩溃的问题 ),并使用内存数据输入输出图像 —— 这样在调用DLL时可以更灵活一些。DLL 工程已经全部配置好,只要使用 VC 2017 就可以直接编译出DLL文件。也可以在 aardio 中运行 import string.ocrLite 即可自动下载安装好我生成好的DLL文件以及 aardio 扩展库源码,DLL 接口用法请参考 aardio 扩展库源码。

string.ocrLite 支持生成绿色、独立的 EXE 文件,带模型生成的EXE打包后仅 十几 MB。下面主要介绍一下在 aaardio 中的用法,详细的用法请查看 string.ocrLite 函数库文档,以下是一个简单的例子:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="string.ocrLite简单演示";right=796;bottom=504)
mainForm.add(
button={cls="button";text="识别剪贴板图像";left=528;top=423;right=712;bottom=477;db=1;dr=1;z=2};
edit={cls="edit";left=497;top=36;right=764;bottom=403;db=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=3};
plus={cls="plus";left=25;top=36;right=474;bottom=403;db=1;dl=1;dr=1;dt=1;repeat="scale";z=1}
)
/*}}*/

import string.ocrLite;
import string.ocrLite.defaultModels;
import win.clip;

var ocr = string.ocrLite(,true);
mainForm.button.oncommand = function(id,event){
	var hBmp = win.clip.readBitmap()
	if(!hBmp){
		mainForm.edit.print("剪贴板未读取到图像")
		return;
	}
	
	var bmp = gdip.bitmap(hBmp);
	var ocrRet = ocr.detectBitmap(bmp);
	if(ocrRet){
		mainForm.plus.background = ocrRet.resultBitmap;
		
		mainForm.edit.text = ocrRet.text;
		mainForm.edit.text = "";
		
		import web.json;
		for i,block in table.eachIndex(ocrRet.blocks){
			mainForm.edit.print(block.text);
			mainForm.edit.print(web.json.stringify(block.points,false));
		}
	}
}

mainForm.show();

var ocrResult = ocr.detectClient(mainForm.hwnd);
if(ocrResult){  
	
	//在图文识别结果里模糊搜索最接近的文本所在的区块正中点位置的坐标。
	var x,y = ocrResult.findPoint("识别剪贴板图像",0.1);
	if(x && y){  
		import mouse; 
		//无句柄窗口可以直接用 winex.mouse.click() 点击
		mouse.moveToWindow(x,y,mainForm.hwnd);
		mouse.click();
	}
}

win.loopMessage();

运行效果如下: OCR 示例效果

chineseocr_lite_dll's People

Contributors

aardio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.