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

这篇具有很好参考价值的文章主要介绍了利用Java实现的图片中文字识别,你学会了吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 背景

今天有粉丝向波哥提出了这样一个疑问:给出一张图片,如何利用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实现的图片中文字识别,你学会了吗?

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

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

四. 测试图片

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

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

如果你识别出来的结果是一首诗就对了哦。文章来源地址https://www.toymoban.com/news/detail-507081.html

到了这里,关于利用Java实现的图片中文字识别,你学会了吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【iOS】——基于Vision Kit框架实现图片文字识别

    根据苹果的官方文档,Vision可以执行面部检测、文本检测、条形码识别、图像注册和一般功能跟踪。Vision还允许将自定义Core ML模型用于分类或对象检测等任务。下面只是对文本识别的一个学习。 Vision的文本识别分为两种方式。 第一种是 快速路径(fast) ,它使用框架的字符

    2024年01月19日
    浏览(26)
  • Python实现OCR大批量识别图片文字,并将文字保存到txt文档中,文末源码直接拿!

    在当今数字化时代,图像文字识别(Optical Character Recognition, OCR)技术的应用越来越广泛。 OCR技术可以将印刷体文字转化为可编辑的文本格式,从而方便进行文本分析、数据挖掘等操作。Python作为一种简洁、易用的编程语言,提供了丰富的图像处理和机器学习库,使得实现图

    2024年02月15日
    浏览(39)
  • 利用OpenCV实现图片中导线的识别

    下面是一个需求,识别图片中的导线,要在图像中检测导线,我们需要采用不同于直线检测的方法。由于OpenCV没有直接的曲线检测函数,如同它对直线提供的 HoughLines 或 HoughLinesP ,检测曲线通常需要更多的图像处理步骤和算法: 边缘检测 :首先使用Canny边缘检测器检测图像

    2024年02月03日
    浏览(30)
  • 【Java】使用Apache POI识别PPT中的图片和文字,以及对应的大小、坐标、颜色、字体等

    本文介绍如何使用Apache POI识别PPT中的图片和文字,获取图片的数据、大小、尺寸、坐标,以及获取文字的字体、大小、颜色、坐标。 官方文档:https://poi.apache.org/components/slideshow/xslf-cookbook.html 官方文档和网上的资料介绍的很少,很多元素,需要一点点尝试才能获取到。 注意

    2024年02月12日
    浏览(30)
  • Java 离线语音识别实现语音转文字

    model下载 我们需要实现离线语音识别,那么就得将模型下载到本地电脑。下载地址为官网的 Models 模块: https://alphacephei.com/vosk/models 我们直接找到 Chinese 分类,这里有 2 个模型 将下载的语言模型包,在下面代码中引入 代码 CommonUtils 注意:以上代码只支持.wav格式的音频文件

    2024年02月05日
    浏览(38)
  • 100天精通Python(实用脚本篇)——第113天:基于Tesseract-OCR实现OCR图片文字识别实战

    🔥🔥 本文已收录于 《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html 优点 : 订阅限时9.9付费专

    2024年01月22日
    浏览(38)
  • javaCV实现java图片ocr提取文字效果

    引入依赖: 引入中文语言训练数据集:chi_sim GitHub - tesseract-ocr/tessdata: Trained models with fast variant of the \\\"best\\\" LSTM models + legacy models Trained models with fast variant of the \\\"best\\\" LSTM models + legacy models - GitHub - tesseract-ocr/tessdata: Trained models with fast variant of the \\\"best\\\" LSTM models + legacy models https:/

    2024年02月11日
    浏览(36)
  • tinymce4/5实现将word中内容(文字图片等)直接粘贴至编辑器中——利用插件tinymce-powerpaste-plugin

    TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。同类程序有:UEditor、Kindeditor、Simditor、CKEditor、wangEditor、Suneditor、froala等等。 TinyMCE的优势: 开源可商用,基于LGPL2.1 插件丰富,自带插件基本涵盖日常所需功能(示例看下面的Demo-2) 接口丰富,可扩展性强,有

    2024年02月15日
    浏览(33)
  • 【Python • 图片识别】pytesseract快速识别提取图片中的文字

    提示:本文多图,请手机端注意流量。 利用python做图片识别,识别提取图片中的文字会有很多方法,但是想要简单一点怎么办,那就可以使用tesseract识别引擎来实现,一行代码就可以做到提取图片文本。 本程序用到了两个python库,pytesseract和PIL,所以先来安装。 运行以下命

    2024年02月02日
    浏览(32)
  • 识别图片中的文字

    PearOCR 是一款免费无限制网页版文字识别工具。 优点如下: 免费:完全免费,没有任何次数、大小限制,可以无限使用; 安全:全部数据本地运算,所有图片均不会被上传; 智能:基于深度学习训练得到的模型,拥有强大的识别能力; 易用:无需安装,即点即用,支持识别

    2024年02月11日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包