一. 背景

今天有粉丝向波哥提出了这样一个疑问:给出一张图片,如何利用Java中的技术获取图片中的文字信息?针对这个问题,你有么有解决办法呢?如果你没有想到好的解决思路,也不用怕,看波哥来给你解决这个问题!

二. 解决思路

首先说到读取文件,我们耳熟能详的肯定就是使用I/O流进行文件的读取,但如果是要将图片里面的文字提取出来又该如何去做呢?

哈哈哈,肯定有同学犯难了,其实我们不妨换个思路。

首先我们想一想,文件的底层是不是就是一个二进制文件呢?当我们想要去获取其中的数据时,是不是会有一些二进制规范呢?我们将这种二进制规范解析出来,是否就能得到文字信息了呢?

三. 代码示例

带着这样的疑问,请大家跟波哥一起通过代码来实现一下吧,下面就是波哥给大家提供的实现代码。

public class Imageparse{public static void main (String[] args){//首先我们需要输入获取图片的路径信息,将其每个点位设置为二进制信息Int[][] img = readPic(/*这里输入你的path绝对路径即可*/);//将其转为一个一维数组int[] bits = new int[img.length * img[0].lenght];Int index = 0;for(int i = 0; i < img.lenght;i++){//这段代码是查看解析的二维数组是否正确for(int j = 0;j<img[i].length;j++){bits[index++] = img[i][j];}}//读取数组信息parseUTF(bits);}public static int readPic(String path){//这里我们就需要涉及到去拿去所有的数据  rgb  信息,有一个图片  IO  流BufferedImage image = ImageIO.read(new FileInputStream(new File(path)));//获取这个图片的宽和高int width = image.getWidth();int height = image.getHeight();//创建一个当前图的最大宽高的二维数组int[][] img = new int[height][width];//到这里我们就该去把每个点位赋值for(int i = 0;i<height;i++){for(int j = 0;j<width;j++){Int       rgb       = image.getRGB(j,i);//此时这是一个二进制颜色代码//条件判断颜色转为      RGB      ,例如(255,0,0)int r = (rgb & 0x00ff0000) >>16 ; int g = (rgb & 0x0000ff00) >>8 ;int b = (rgb & 0x000000ff) ;int  a = 0xff /2; if(r > a && g > a && b > a){img[i][j] = 0;}else{img[i][j] = 1;}}}return img;}public static void  parseUTF(int[] bits){int index = 0;int count = 0;for(int j = 0;j<bits.lenght;){if(bits[j]==1){count++;index++;}else{index++;String str = "";if(count == 0){for(int k=1;k<=7;k++){str += bits[index++];}}else {for(int x = 0;x<8-(count+1);x++){str+=bits[index++];}}else{for(int y = 0;y<count-1;y++){index+=2;for(int z = 0;z<6;z++){str+=bits[index++];} }}count = 0;System.out.print((char)Integer.parseInt(str,2));str="";}j=index;}}
}

接下来,来跟随波哥看看代码实际展现的最终效果吧:

四. 测试图片

下面这种图片,供大家用于测试上面的代码,你可以把波哥上面的代码运行起来,试试看能不能把下面图片中的文字识别出来。

如果你识别出来的结果是一首诗就对了哦。

利用Java实现的图片中文字识别,你学会了吗?相关推荐

  1. Java调用百度OCR文字识别的接口

    调用百度OCR文字识别的接口,来自于百度官网,亲测可以使用 跳转链接 FileUtil的下载链接 Base64Util下载链接 HttpUtil下载链接 GsonUtils下载链接 Accurate. ...

  2. 利用Java进行身份证正反面信息识别

    利用Java进行身份证正反面信息识别 1.百度授权信息准备 首先你得在百度AI开放平台上面注册一个账号,或者已经有百度账号了,网址是:https://ai.baidu.com/,如下图所示: 然后点击 ...

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

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

  4. JAVA 进行图片中文字识别(准确度高)!!!

    OCR 识别文字项目 该项目 可以进行两种方式进行身份证识别 1. 使用百度接口 1.1 application-dev.yml配置 ocr:# 使用baiduOcr 需要有Ocr服务器 使用百度需要 ...

  5. python批量识别图片中文字_利用Python批量进行图片文字识别

    实现逻辑 1. 批量获取图片的路径 2. 通过调用百度OCR接口批量识别图片 3. 将返回值写入txt 实现过程 1. 安装百度的Python SDK pip install baidu-aip 2. ...

  6. java 视频字幕_javaCV文字识别之2:视频文字识别和视频提取字幕文字字符

    前言 上一章我们实现了图片的文字识别和提取,本章基于javacv中的tesserac 和ffmpeg实现视频文字识别和提取 javacv中包含ffmpeg和tesserac两个库以及tesserac的 ...

  7. JAVA实现百度OCR文字识别功能

    转自:http://blog.csdn.net/javagirlone/article/details/47807963 闲来无事,发现百度有一个OCR文字识别接口,感觉挺有意思的,拿来研究一下. 百 ...

  8. python 5行代码实现图片中文字识别

    python + tesseract 实现图片文字识别 使用python与其拓展库识别文字识别,将图片中的中文输出为字符串: 安装python3.6 从githup下载源码安装tesseract,使用 ...

  9. python批量图片文字识别_利用Python批量进行图片文字识别

    实现逻辑 1. 批量获取图片的路径 2. 通过调用百度OCR接口批量识别图片 3. 将返回值写入txt 实现过程 1. 安装百度的Python SDK pip install baidu-aip 2. ...

最新文章

  1. TANDEM 基于深度多视图立体视觉的实时跟踪和稠密建图
  2. Ios中checkBox
  3. Block变量的的用法,使你的程序看起来清晰明了!
  4. 基于mysqld_multi实现MySQL 5.7.24多实例多进程配置
  5. Spring使用支付宝扫码支付
  6. matlab simulink 四分之一1/4车辆垂向振动模型 轮毂电机
  7. ActiveMQ集成Spring
  8. Tesseract入门-VS2015下调用Tesseract4.0 +win7 64位系统
  9. js--------1.时间
  10. zabbix v3.0安装部署【转】
  11. 长期演进技术(LTE,Long Term Evolution)
  12. 《编程导论(Java)·9.3.1回调·3》回调的实现
  13. 5.3(将千克转换成磅)
  14. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_06-vuejs研究-vuejs基础-v-on指令...
  15. vue cli3.0 解决跨域问题和axios等问题,配合Django
  16. 算法竞赛入门经典(第二版)答案——第一部分
  17. 开拓海外市场,需要选择怎样的云服务?
  18. python的拼音_python 汉字按拼音排序
  19. IT 生涯初探与工作经验分享【计算机、软件工程相关专业毕业生应该知道的事】---- 来自2008级学长的掏心窝分享
  20. SP 2022论文泛读

热门文章

  1. Google打开为360解决办法
  2. 本地html播放器代码,HTML播放器代码集
  3. 在阿里云上搭建私有GIT仓库
  4. 图形之可见面判别算法
  5. 美国PARKER派克永磁高速伺服电机——GVM电机
  6. selenium的webdrive驱动安装(谷歌浏览器)
  7. 回顾2007:新兴网络服务汇总(完整篇)
  8. ArcGIS Server中的各种服务
  9. Word 2019 自带公式快速编号方法
  10. Hive_HQL_复杂SQL_连续发单天数