B2B网络软件
标题:
AIWROK软件里的PaddLeOCR里的OCR
[打印本页]
作者:
YYPOST群发软件
时间:
前天 09:30
标题:
AIWROK软件里的PaddLeOCR里的OCR
AIWROK软件里的PaddLeOCR里的OCR
第一种方法
//加载插件
rhino.loadDex('PaddLeOCR.apk')
var PaddLeOCR=com.LR.JZ.PaddLeOCR.Main;
//初始化OCR插件
var Err = PaddLeOCR.IniTiaLModeL()
if(Err!=true){
printl("加载PaddLeOCR失败");
}
//文本检测模型 文件名带有Db的文件 数组下标1为param文件 下标2为bin文件
var DbModeL = [
project.getPluginsPath()+"PaddLeOCR_Db.param",
project.getPluginsPath()+"PaddLeOCR_Db.bin"
];
// 文本识别模型 文件名带有Rec的文件 数组下标1为param文件 下标2为bin文件
var RecModeL = [
project.getPluginsPath()+"PaddLeOCR_Rec.param",
project.getPluginsPath()+"PaddLeOCR_Rec.bin"
];
// 生成数据时创建的txt文件 又名: 标签文件 字典文件
var LaBeL = project.getPluginsPath()+"Label.txt"
// 加载模型
var Err = PaddLeOCR.LoadModeL(LaBeL,DbModeL[0],DbModeL[1], RecModeL[0],RecModeL[1], 640, 2, false, "", "")
if (Err != null){
printl("加载模型错误 原因: "+ Err)
}
var bitmap = screen.screenShot(640, 960, 100).getBitmap();
var value=PaddLeOCR.Detect(bitmap,0.45, 0.55);
printl(value);
复制代码
//这个方法是另外添加的,它可以把图片二值化后再识别,有需要的可以试一试。
带二值化的DEMO:
二值化的PaddLeOCR.rar
复制// 加载 OCR 插件
rhino.loadDex('PaddLeOCR.apk');
var PaddLeOCR = com.LR.JZ.PaddLeOCR.Main;
// 初始化 OCR 插件
var Err = PaddLeOCR.IniTiaLModeL();
if (Err != true) {
printl("加载PaddLeOCR失败");
}
// 文本检测模型
var DbModeL = [
project.getPluginsPath() + "PaddLeOCR_Db.param",
project.getPluginsPath() + "PaddLeOCR_Db.bin"
];
// 文本识别模型
var RecModeL = [
project.getPluginsPath() + "PaddLeOCR_Rec.param",
project.getPluginsPath() + "PaddLeOCR_Rec.bin"
];
// 标签文件
var LaBeL = project.getPluginsPath() + "Label.txt";
// 加载模型
Err = PaddLeOCR.LoadModeL(LaBeL, DbModeL[0], DbModeL[1], RecModeL[0], RecModeL[1], 640, 2, false, "", "");
if (Err != null) {
printl("加载模型错误 原因: " + Err);
}
// 进行屏幕截图
var bitmap = screen.screenShot(640, 960, 100).getBitmap();
// 引入 Android 和 OpenCV 的类
importPackage(org.opencv.core);
importPackage(org.opencv.imgproc);
importPackage(org.opencv.android);
importClass(android.graphics.Bitmap);
// 将 Bitmap 转换为 OpenCV 的 Mat
var mat = new Mat();
Utils.bitmapToMat(bitmap, mat);
// 进行二值化处理
var binaryMat = new Mat();
Imgproc.threshold(mat, binaryMat, 50, 150, Imgproc.THRESH_BINARY);
// 将二值化后的 Mat 转换回 Bitmap
var binaryBitmap = Bitmap.createBitmap(binaryMat.cols(), binaryMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(binaryMat, binaryBitmap);
// 将二值化后的 Bitmap 传递给 OCR 进行文本检测
var value = PaddLeOCR.Detect(binaryBitmap, 0.45, 0.55);
printl(value);
复制代码
1.png
(693.87 KB, 下载次数: 1)
下载附件
前天 09:29
上传
欢迎光临 B2B网络软件 (http://bbs.niubt.cn/)
Powered by Discuz! X3.2