有道OCR图文识别整合SpringBoot

这篇具有很好参考价值的文章主要介绍了有道OCR图文识别整合SpringBoot。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景需求,

官方SDK,在SpringBoot项目中过于臃肿,需要引入的Jar包过多,

在SpringBoot中,

本文使用SpringBoot中的RestTemplate对象进行请求接口

案例代码如下文章来源地址https://www.toymoban.com/news/detail-616902.html

package com.example.demo2.Test;


import com.example.demo2.Test.Ocr.OcrResponse;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
public class OcrV3Demo2 {

    private static final String YOUDAO_URL = "https://openapi.youdao.com/ocrapi";
    private static final String APP_KEY = "AppID";
    private static final String APP_SECRET = "密钥";

    public static void main(String[] args) throws IOException {
        RestTemplate restTemplate = new RestTemplate();

        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        String q = loadAsBase64("图片地址....");
        String salt = String.valueOf(System.currentTimeMillis());
        String detectType = "10012";
        String imageType = "1";
        String langType = "auto";
        params.add("detectType", detectType);
        params.add("imageType", imageType);
        params.add("langType", langType);
        params.add("img", q);
        params.add("docType", "json");
        params.add("signType", "v3");
        String curtime = String.valueOf(System.currentTimeMillis() / 1000);
        params.add("curtime", curtime);
        String signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET;
        String sign = getDigest(signStr);
        params.add("appKey", APP_KEY);
        params.add("salt", salt);
        params.add("sign", sign);

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);

        ResponseEntity<OcrResponse> responseEntity = restTemplate.exchange(YOUDAO_URL, HttpMethod.POST, requestEntity, OcrResponse.class);
        System.out.println("输出....");

        System.out.println(responseEntity.getBody());

    }

    public static String getDigest(String string) {
        if (string == null) {
            return null;
        }
        char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        byte[] btInput = string.getBytes();
        try {
            MessageDigest mdInst = MessageDigest.getInstance("SHA-256");
            mdInst.update(btInput);
            byte[] md = mdInst.digest();
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for (byte byte0 : md) {
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(str);
        } catch (NoSuchAlgorithmException e) {
            return null;
        }
    }

    public static String loadAsBase64(String imgFile) {
        File file = new File(imgFile);
        if (!file.exists()) {
            System.out.println("文件不存在");
            return null;
        }
        try (InputStream in = new FileInputStream(imgFile)) {
            byte[] data = new byte[in.available()];
            in.read(data);
            return Base64.getEncoder().encodeToString(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String truncate(String q) {
        if (q == null) {
            return null;
        }
        int len = q.length();
        return len <= 20 ? q : (q.substring(0, 10) + len + q.substring(len - 10, len));
    }

}

到了这里,关于有道OCR图文识别整合SpringBoot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [C#]调用tesseact-ocr的traineddata模型进行ocr文字识别

    [C#]调用tesseact-ocr的traineddata模型进行ocr文字识别

    【框架地址】 https://github.com/charlesw/tesseract 【算法介绍】 Tesseract OCR是一个开源的光学字符识别引擎,它可以将图像中的文字转换成可编辑和可搜索的文本格式。Tesseract由惠普实验室于1985年开始开发,并在2005年被Google收购后成为了开源项目。自那时起,它一直在不断的更新和

    2024年02月02日
    浏览(12)
  • OCR文字识别技术

    OCR文字识别技术

    OCR全称是optical character recognition,中文光学字符识别。 主要技术是:把图像形状转变为文本字符。 简单来说,OCR技术就是通过图像处理和模式识别技术对光学的字符进行识别,即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。 OCR 支持各

    2024年02月08日
    浏览(17)
  • 阿里云OCR识别

    ocr识别证件照;主要是使用阿里云j接口: 1、注册阿里云账户获取appKey appSer 2、调用接口 2.1:定义常量  2.2 :OCR识别工具: 主要是按照type调用个子的方法

    2024年01月25日
    浏览(11)
  • 离线视频ocr识别

    离线视频ocr识别

    windows安装方法: 下载安装 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.3.20231005.exe 下载 去掉版本依赖,修改如下: 之后安装 如果遇到 RuntimeError: Failed to init API, possibly an invalid tessdata path: ./ 则需要设置环境变量TESSDATA_PREFIX为C:Program FilesTesseract-OCRtessdata 默认只能

    2024年02月03日
    浏览(15)
  • 腾讯云OCR识别

    腾讯云OCR识别

    目录 前言 一、腾讯云身份验证 二、使用API 2.1 Python OCR  API调用 2.2 JAVA OCR  API调用 2.3 Go OCR  API调用          2.4 Nodejs OCR  API调用 2.5 .Net  API调用 2.6 C++  API调用 三、代码仓库源码 提示:这里可以添加本文要记录的大概内容:   为了帮助同学们进行OCR识别,本文一共

    2024年02月06日
    浏览(16)
  • Umi-OCR:开源、免费、离线、多功能的 OCR 图片文字识别软件

    官方版本说明 不同版本仅OCR引擎插件不同,其它功能完全一致。 均支持 win7 x64 及以上的系统,附带多国语言识别库。 .7z.exe 为自解压包,可以用压缩软件打开,也可以在没有安装压缩软件的电脑上直接双击解压。 Paddle 引擎插件版 (性能好,速度快,占用率高,适合高配机

    2024年01月19日
    浏览(41)
  • 【Python】【OpenCV】OCR识别(三)——字符识别

    【Python】【OpenCV】OCR识别(三)——字符识别

    通过上一篇博客,我们成功将有角度的图片进行“摆正”,接下来我们来提取图片中的文字。 我们使用Tesseract来处理图片并提取文字,相关下载安装请参考:Python下Tesseract Ocr引擎及安装介绍 - 黯然销魂掌2015 - 博客园 (cnblogs.com) 同时我们需要下载第三方Lib——pytesseract,使用

    2024年02月02日
    浏览(12)
  • OpenCV项目1-OCR识别

    OpenCV项目1-OCR识别

    文章处理的图片: 思路:我们拿到一张图片不是直接就识别的,而是做一些处理,去除我们不需要的信息,保留我们所需要的信息,再做识别。 通常要做的是对图片进行灰度化处理,再进行滤波,形态学等等去除掉不要的信息。 因为在处理的过程中,我们要对每一步处理后

    2024年02月07日
    浏览(12)
  • Python实现OCR文字识别

    OCR(Optical Character Recognition,光学字符识别)是指通过扫描纸质文档或照片,通过计算机对图像记录的文字进行识别的一种技术。本文介绍如何使用Python来实现OCR文字识别技术。 要实现Python的OCR文字识别,首先需要安装OCR软件和相关的包依赖,比如pytesseract和OpenCV。 安装pyt

    2024年02月16日
    浏览(11)
  • python之OCR文字识别

    python之OCR文字识别

    将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。 easyocr是基于torch的深度学习模块 easyocr安装后调用过程中出现opencv版本不兼容问题,所以放弃此方案

    2024年02月20日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包