Skip to content
On this page

Ocr相关

javascript
const core = require('cheese-js');

ddddOcr:public static dddddOcr(): DDDDOcr

用法示例:

javascript
const core = require('cheese-js'); //导入核心模块
const ocr = core.ocr;
const converters = core.converters;
const base = core.base;
const filese = core.files;
const images = core.cv.images;
let c = ocr.dddddOcr()
//训练好的推理模型下载:https://pan.baidu.com/s/1n9RUCE8jmOaf0PpGdpjr7A?pwd=1234 (其他 >Ai模型 >paddleocr模型)
if (c.init("/storage/emulated/0/Pictures/model")) {
//测试 ocr
    console.log("***************测试ocr")
    let a = converters.streamToBitmap(converters.sdToStream(path.ASSETS_DIRECTORY.path+"/3.png"))
    console.log(c.ocr(a))
    base.release(a)

//测试目标检测
    console.log("***************测试目标检测")
    let b = converters.streamToBitmap(converters.sdToStream(path.ASSETS_DIRECTORY.path+"/5.jpg"))
    let r = c.det(b)
    console.log(r)
    files.save(images.drawJsonBoundingBoxes(b,r), "/storage/emulated/0/test1.png") //保存到本地绘制图片
    base.release(b)

//测试滑块,算法 1
    console.log("***************测试滑块,算法 1")
    let image1 = converters.streamToBitmap(converters.sdToStream(path.ASSETS_DIRECTORY.path+"/a.png"))
    let image2 = converters.streamToBitmap(converters.sdToStream(path.ASSETS_DIRECTORY.path+"/b.png"))
    let r1 = c.match(image1,image2)
    console.log(r1)
    base.release(image1)
    base.release(image2)


//测试坑位匹配
    console.log("***************测试坑位匹配")
    let image3 = converters.streamToBitmap(converters.sdToStream(path.ASSETS_DIRECTORY.path+"/c.jpg"))
    let image4 = converters.streamToBitmap(converters.sdToStream(path.ASSETS_DIRECTORY.path+"/d.jpg"))
    let r2 = c.match(image3,image4)
    console.log(r2)
    base.release(image3)
    base.release(image4)

}

mlkitOcr:public static mlkitOcr(bitmap: Bitmap,recognizer: number): Text

扩展属性:

  • 识别模式为简体中文、繁体中文:CHINESE
  • 识别模式为英语、意大利语、法语、西班牙语、葡萄牙语和罗马尼亚语:LATIN

参数:

  • Bitmap(bitmap):Bitmap对象
  • number(recognizer):识别模式
  • Callback(callback):识别结果回调

用法示例:

javascript
const core = require('cheese-js'); //导入核心模块
const ocr = core.ocr;
const converters = core.converters;
let bit = converters.assetsToBitmap("1.png")
let d = ocr.mlkitOcr(bit, ocr.CHINESE).result
for (let i = 0; i <d.getTextBlocks().size() ; i++) {
    console.log("文本", d.getTextBlocks().get(i).getText(),"位置",d.getTextBlocks().get(0).getBoundingBox());
}

paddleOcrv4:public static paddleOcrv4(): paddleOcrv4

用法示例:

javascript
//训练好的推理模型下载:https://pan.baidu.com/s/1n9RUCE8jmOaf0PpGdpjr7A?pwd=1234 (其他 >Ai模型 >paddleocr模型)
const core = require('cheese-js'); //导入核心模块
const {ocr, base, image, path, converters} = core;
let paddle = ocr.paddleOcrv4()
var src = converters.assetsToBitmap("home.png")
if (src != null) {
    //ncnn版ppocr  模型命名规则 det模型 paddleocr_det rec模型 paddleocr_rec 标签文件paddleocr_keys 支持v3和v4模型 加载模型路径只需要填paddleocr_det.param paddleocr_rec.param paddleocr_det.bin paddleocr_rec.bin  paddleocr_keys.txt 所在的目录即可
    if (paddle.init(path.ASSETS_DIRECTORY.path + "/ppocr")) {
        console.log(src)
        const start = Date.now();
        const r = paddle.ocr(src);
        const duration = Date.now() - start;
        console.log(`OCR检测耗时: ${duration} 毫秒`);
        const boundingBoxes = []; // 初始化空数组
        for (let i = 0; i < r.length; i++) {
            console.log(`index ${i}`);
            console.log(`  文本: ${r[i].text}`);
            console.log(`  概率: ${r[i].prob}`);
            console.log(`  边界: left=${r[i].left}, top=${r[i].top}, right=${r[i].right}, bottom=${r[i].bottom}`);
            // 将当前边界框对象添加到 boundingBoxes 数组
            boundingBoxes.push({
                text: r[i].text,
                left: r[i].left,
                top: r[i].top,
                right: r[i].right,
                bottom: r[i].bottom,
            });
        }

        let bit = image.drawJsonBoundingBoxes(src, JSON.stringify(boundingBoxes))
        image.showBitmapView(bit)
        base.release(bit)
    }
    base.release(src)
}

paddleOcrv5:public static paddleOcrv5(): paddleOcrv5

用法示例:

javascript
const core = require('cheese-js');
const converters =  core.converters;
const ocr =  core.ocr;
let pp = ocr.paddleOcrv5()
var startTime = Date.now(); // 记录开始时间

if (pp.init()) {
    var endTime = Date.now(); // 记录初始化结束时间
    console.log("ppocrv5初始化成功,耗时 " + (endTime - startTime) + " 毫秒");

    var bitmap = converters.assetsToBitmap("1.png");
    var inferStartTime = Date.now(); // 记录识别开始时间
    var result = pp.ocr(bitmap);
    var inferEndTime = Date.now(); // 记录识别结束时间

    console.log("识别结果:", result);
    console.log("识别耗时 " + (inferEndTime - inferStartTime) + " 毫秒");
} else {
    console.log("ppocrv5初始化失败");
}