YYPOST群发软件 发表于 5 天前

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,DbModeL, RecModeL,RecModeL, 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, DbModeL, RecModeL, RecModeL, 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]
查看完整版本: AIWROK软件里的PaddLeOCR里的OCR