java_baidu_ocr

Java调用百度OCR文字识别API实现图片文字识别软件

项目源代码在文末,放到了GitHub上 - https://github.com/Ymy214/java_baidu_ocr

识别图一

图一识别结果

识别图二

图二识别结果

识别图三

图三识别结果

软件界面

Java源代码:

package baiduOcr;

import java.awt.BorderLayout;

import java.awt.Font;

import java.awt.Toolkit;

import java.awt.datatransfer.Clipboard;

import java.awt.datatransfer.StringSelection;

import java.awt.datatransfer.Transferable;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import java.util.HashMap;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import org.json.JSONArray;

import org.json.JSONObject;

import com.baidu.aip.ocr.AipOcr;

@SuppressWarnings("serial")

public class FileChooserOCR extends JFrame implements ActionListener

{

// 设置APPID/AK/SK

public static final String appId = "15289864";

public static final String apiKey = "j0pj5Y7HVElkLnmn2LEXKeyO";

public static final String secretKey = "FKVbH7EBcGy4DIaqPnXcqE47eACzn2W7";

AipOcr client = new AipOcr(appId, apiKey, secretKey);

JButton open, b1, b2, b3;

JPanel ocrPanel;

JTextArea ocrText;

JScrollPane areaScroll;

// 构造方法

public FileChooserOCR()

{

ocrPanel = new JPanel();

ocrPanel.setLayout(new BorderLayout());

open = new JButton("选择图片>>>文字识别");

b1 = new JButton("清空");

b2 = new JButton("复制");

b3 = new JButton("配置");

open.setFont(new Font("宋体", Font.BOLD, 18));

b3.setFont(new Font("宋体", Font.BOLD, 18));

b2.setFont(new Font("宋体", Font.BOLD, 18));

b1.setFont(new Font("宋体", Font.BOLD, 18));

//文本域的滚动条

// areaScroll = new JScrollPane(ocrText);

// areaScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

// areaScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

//添加监听

open.addActionListener(this);

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

ocrText = new JTextArea("输出内容。。。");

ocrText.setEditable(true);

ocrText.setVisible(true);

ocrText.setFont(new Font("宋体", Font.BOLD, 18));

ocrPanel.add(open, BorderLayout.NORTH);

ocrPanel.add(b1, BorderLayout.EAST);

ocrPanel.add(b2, BorderLayout.WEST);

ocrPanel.add(b3, BorderLayout.SOUTH);

ocrPanel.add(ocrText, BorderLayout.CENTER);

// ocrPanel.add(areaScroll);

ocrPanel.setSize(300, 300);

this.add(ocrPanel);

this.setBounds(400, 200, 900, 600);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==b1)

{

ocrText.setText("已清空内容。。。");

}

if(e.getSource()==b2)

{

String jianqieban = ocrText.getText();

setSysClipboardText(jianqieban);

}

if (e.getSource()==b3)

{

//日后实现

}

if(e.getSource()==open)

{

System.out.println(e.getSource());

// TODO Auto-generated method stub

JFileChooser jfc = new JFileChooser();

jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

jfc.showDialog(new JLabel(), "选择");

File file = jfc.getSelectedFile();

if (file.isDirectory())

{

System.out.println("(选择目录) $ " + file.getAbsolutePath());

System.out.println("请选择图片。。。");

}

else if (file.isFile())

{

System.out.println("(选择文件) $ " + file.getAbsolutePath());

ocrText.setText("正在识别。。。");

String ocrStr = this.imgOcr(file.getAbsolutePath());

ocrText.setText(ocrStr);

}

System.out.println("正在识别>>>"+jfc.getSelectedFile().getName());

}

}

//复制到剪贴板

public static void setSysClipboardText(String writeMe) {

Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();

Transferable tText = new StringSelection(writeMe);

clip.setContents(tText, null);

}

// 主方法

public static void main(String[] args)

{

FileChooserOCR ocrWin = new FileChooserOCR();

ocrWin.setVisible(true);

}

/*

* 文字识别方法

*/

public String imgOcr(String imgpath)

{

// 传入可选参数调用接口

HashMap options = new HashMap();

options.put("language_type", "CHN_ENG");

options.put("detect_direction", "true");

options.put("detect_language", "true");

options.put("probability", "true");

// 参数为本地路径

JSONObject res = client.basicGeneral(imgpath, options);

//解析json-------------

JSONArray wordsResult = (JSONArray)res.get("words_result");

String ocrStr = "\n";

for(Object obj : wordsResult)

{

JSONObject jo = (JSONObject)obj;

ocrStr += jo.getString("words") + "\n";

}

//解析json-------------

return ocrStr;

// return res.toString(2);

// 参数为二进制数组

// byte[] file = readFile("test.jpg");

// res = client.basicGeneral(file, options);

// System.out.println(res.toString(2));

// 通用文字识别, 图片参数为远程url图片

// JSONObject res = client.basicGeneralUrl(url, options);

// System.out.println(res.toString(2));

}

}

最后,附上完整项目GitHub地址:

https://github.com/Ymy214/java_baidu_ocr

java调用ocr识别api_Java文字识别软件-调用百度ocr实现文字识别相关推荐

  1. vue+springboot实现调用本地摄像头拍照上传后端使用百度ocr识别身份证信息

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.前端 二.后端 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一.前端 1.首先进入页面打开摄像头 2.点击手动 ...

  2. php显示动态的文字,动态文字制作软件,视频上制作动感文字/动态字幕条

    在视频中,文字除了可以介绍或说明视频内容之外,更能适时增添视频的趣味性.在以下我们将介绍的动态文字制作软件中,带有多种预设的标题文字动画,大家可以轻松的直接套用,也能自定义文字动画,让视频影片更具专业 ...

  3. 识别连笔字的软件_在线手写文字识别软件快速代抄

    隶书教程隶书教程吴先生经过仔细排比研究,得出那样的科学论据来,作为学术上篆.隶的不同定名的分野,自然是很值得重视的.不过还有两个问题想要问,那就是∶一,篆书也不能够个个是象形字,一开始就有象形以外的许 ...

  4. python百度ai文字识别、代码分析_python利用百度AI实现文字识别功能

    本文为大家分享了python实现文字识别功能大全,供大家参考,具体内容如下 1.通用文字识别 # -*- coding: UTF-8 -*- from aip import AipOcr # 定义常量 ...

  5. python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字

    最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...

  6. mac 文字识别软件ocr_Mac平台上一款免费的OCR文字识别功能的屏幕截图软件Screen OCR...

    今天小编为大家带来Mac平台上一款免费的OCR文字识别功能的屏幕截图软件Screen OCR for Mac(屏幕截图OCR工具)​www.macdown.com .使用这款截图ocr识别工具可以帮助 ...

  7. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  8. python 百度ocr安装_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  9. Python调用百度OCR实现图片文字识别

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  10. 能够识别扫描文字图片软件

    能够识别扫描文字图片软件 扫描图画上的文字处理起来对比费事,因为不能直接的仿制和修改.如何将扫描图画上文字变换成可修改文本?就成了许多单位文员需要急迫处理的问题了,这个作业处理起来假如没有找到适宜的软 ...

最新文章

  1. 小米台灯底座接口很松_呵护你的眼,米家台灯1S
  2. lLinux 下 Stress 压力测试工具
  3. java搜索文件_Java如何在目录中搜索文件?
  4. 【原创-长文】openstack 版本D安装配置及本次安装中遇到的问题
  5. OO第一单元总结分析
  6. 微信小程序模板订阅消息推送
  7. 【FFmpeg4.1.4】音视频分离器
  8. 手术麻醉管理系统方案/案列/小程序/网站
  9. mac 长时间锁屏后进入无声音
  10. 使用 cookie的一些缺陷和隐患
  11. 数据库中的二维表—巧借Excel
  12. strongswan源代码结构与数据结构
  13. 网页前端设计之多选按钮
  14. 如何制作家庭网络服务器,如何用一个废旧的笔记本打造一个家庭网络服务器?...
  15. kafka-manger监控部署
  16. jenkins checkstyle:local variable hides a field
  17. Office365离线安装包
  18. 如何看hbo_如何取消HBO Max订阅
  19. Adobe 系列软件中英文版本的切换
  20. HackingLab的一套渗透测试题

热门文章

  1. oracle表扬信,2019年商务英语高级写作范文:感谢与道歉函
  2. Python软件编程等级考试三级——20211205
  3. (十二)命令模式详解(故事版) .
  4. IMM管理口收集日志
  5. Android如何自定义一个心电图控件?
  6. SQL语句的强大综合集锦
  7. 02-SA8155P ADB数据传输
  8. [ARC101E]Ribbons on Tree
  9. html背景图片不完全填充,background-size为100% 100%时背景图填充不完整
  10. 图解计算机中的数值范围和浮点数运算