OCR小工具-使用百度OCR API和JavaFX完成

本文介绍了如何结合百度OCR API与JavaFX创建一个简单的OCR工具。首先,详细讲述了如何获取和使用百度OCR的APIKey与SecretKey以及Token。接着,通过JavaFX设计UI界面,包括文件选择、剪切板操作等功能。最后,实现了从选择的图片中识别文字,并将结果复制到剪切板,以及创建桌面快捷方式以便快速启动。
摘要由CSDN通过智能技术生成

百度OCR API的使用

这里使用的是百度的OCR API(地址:https://ai.baidu.com/tech/ocr_others/webimage)据我的使用情况来看,准确率还行,但是好像不会更多识别一些符号,如代码里面的一行只有一个大括号之类的就不会被识别,但是大部分差不多都能识别,识别的效果如下:Air的歌单
识别的效果如下(部分):
OCR识别效果

创建百度OCR的APIKey与SecretKey

首先进入百度OCR的网页:链接: https://cloud.baidu.com/product/ocr/general.点击立即使用
在这里插入图片描述
如果之前没有使用过,可以选择“创建应用”
在这里插入图片描述
然后到了这个页面,随便填一填就可以了。
在这里插入图片描述
由于我们需要的是APIkey和SecretKey,所以在创建完成后查看应用详情:
在这里插入图片描述
记住我们的APIKey和SecretKey,后面要用到。
在这里插入图片描述

获取OCR的Token

查看百度官方的文档: https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu.
主要就是访问这个地址(可以直接浏览器访问,记得替换):https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=替换成刚刚的APIKey&client_secret=替换成刚刚的SecretKey&

浏览器打开后发现是一个json字符串,我们主要需要的是"access_token"这一项(可以使用Ctrl+F进行搜索),如下图所示:
在这里插入图片描述
把这个token记下来,后面使用OCR就是使用这个Token来进行鉴权。(Token可能会失效,按照官方来说一般一个月需要更换一次)

OCR使用测试

我们拿到了刚刚的Token后就可以使用百度的OCR功能了。

查看百度官方的API文档: https://cloud.baidu.com/doc/OCR/s/zk3h7xz52.
下方有代码示例,我们这次使用的是Java,所以看Java的版本就可以了,按照其要求下载几个文件,以及一个谷歌的Gson.jar包,可以使用Maven,也可以到我的GitHub链接进行下载,GitHub链接在底部。
在这里插入图片描述
我们使用其示例代码测试一下,我们拿这张图片来进行测试:
在这里插入图片描述
可以看到主要返回的是也是一个json字符串(主要是看最后一行输出,其他的部分都是百度的日志),如下:

{
   
  "log_id": 9020029829510268420,
  "words_result_num": 8,
  "words_result": [
    {
   
      "words": "网络图片文字识别"
    },
    {
   
      "words": "更新时间:2020-01-16"
    },
    {
   
      "words": "接口描述"
    },
    {
   
      "words": "针对网络图片进行专项优化,支持识别艺术字体或背景复杂的文字内容。"
    },
    {
   
      "words": "请求说明"
    },
    {
   
      "words": "请求示例"
    },
    {
   
      "words": "HTTP方法:POST"
    },
    {
   
      "words": "URL: https: //aip.baidubce. com/rest/2.0/ocr/v1/webimage"
    }
  ]
}

所以我们需要做的便是对这个json进行解析,json解析比较方便的是使用Google的Gson.fromJson()方法,具体可以看这篇文章: https://www.jianshu.com/p/75a50aa0cad1.(如果不会Json解析的也可以进行字符串处理,会更加麻烦一些)。
这里我使用Gson来解析百度返回的json字符串,返回的是一个ArrayList< String >,就是所需要的的所有的识别的文字的结果。

import com.google.gson.Gson;

import java.util.ArrayList;

public class OCRResultUtil {
   
    private static final Gson gson = new Gson();

    /**
     * 解析百度OCR识别返回的json字符串为所有的结果
     * @param jsonResult 百度OCR识别返回的json字符串
     * @return 解析完成的所有的识别的结果
     */
    public static ArrayList<String> getOCRResult
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值