hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
MIT License
24.51k stars 2.48k forks source link

java调用的时候,文本方向问题 #382

Closed zhangxianbao closed 5 months ago

zhangxianbao commented 6 months ago

采用java调用的时候,原文字体方向是倾斜的,但返回的结果字体是正的,想要原文的文字方向

hiroi-sora commented 6 months ago

如果原文是旋转90°、180°,那么返回结果是无法推断原文方向的。方向分类器由OCR引擎内部处理,暂时没有暴露给Umi接口。

如果原文是旋转如20°、45°这些数值,那么可以根据 ["box"] 来推断旋转角度。示例:

        // 从OCR结果列表中提取 ["box"]

        // 取左上角、右上角点
        double x1 = box[0][0];
        double y1 = box[0][1];
        double x2 = box[1][0];
        double y2 = box[1][1];

        // 计算点 (x1, y1) 和点 (x2, y2) 之间的角度
        double angle = Math.atan2(y2 - y1, x2 - x1);

        // 将弧度转换为度
        double angleInDegrees = Math.toDegrees(angle);

        System.out.println("角度(弧度): " + angle);
        System.out.println("角度(度): " + angleInDegrees);
zhangxianbao commented 6 months ago

["box"]是识别的文字坐标吗,上下左右方向

hiroi-sora commented 6 months ago

请仔细阅读 HTTP接口手册 - data格式说明 ,其中有介绍。