java 实现图片的文字识别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 实现图片的文字识别相关的知识,希望对你有一定的参考价值。

参考技术A 摘要图像识别是目前很热门的研究领域,涉及的知识很广,包括信息论、模式识别、模糊数学、图像编码、内容分类等等。本文仅对使用Java实现了一个简单的图像文本二值处理,关于识别并未实现。
  步骤
  建立文本字符模板二值矩阵
  对测试字符进行二值矩阵化处理
  代码
  /*
  * @(#)StdModelRepository.java
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Library General Public License for more details.
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  package cn.edu.ynu.sei.recognition.util;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import javax.imageio.ImageIO;/** * Hold character charImgs as standard model repository.
  * @author 88250
  * @version 1.0.0.0, Mar 20, 2008
  */
  public class StdModelRepository
  /** * hold character images
  */ List charImgs = new ArrayList();
  /** * default width of a character
  */ static int width = 16 /** * default height of a character
  */ static int height = 28 /** * standard character model matrix
  */ public int[][][] stdCharMatrix = new int[27][width][height];
  /** * Default constructor.
  */ public StdModelRepository()
  BufferedImage lowercase = null try
  lowercase = ImageIO.read(new File("lowercase.png"));
   catch (IOException ex)
  Logger.getLogger(StdModelRepository.class.getName()).
  log(Level.SEVERE, null, ex);
  
  for (int i = 0 i < 26 i++)
  charImgs.add(lowercase.getSubimage(i * width,
  0,
  width,
  height));
  
  for (int i = 0 i < charImgs.size(); i++)
  Image image = charImgs.get(i);
  int[] pixels = ImageUtils.getPixels(image,
  image.getWidth(null),
  image.getHeight(null));
  stdCharMatrix[i] = ImageUtils.getSymbolMatrix(pixels, 0).clone();
  ImageUtils.displayMatrix(stdCharMatrix[i]);
  
  
  
  /*
  * @(#)ImageUtils.java
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Library General Public License for more details.
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  package cn.edu.ynu.sei.recognition.util;import java.awt.Image;import java.awt.image.PixelGrabber;import java.util.logging.Level;import java.util.logging.Logger;/** * Mainipulation of image data.
  * @author 88250
  * @version 1.0.0.3, Mar 20, 2008
  */
  public class ImageUtils
  /** * Return all of the pixel values of sepecified <code>image< .>  * @param image the sepecified image
  * @param width width of the image
  * @param height height of the image
  * @return */ public static int[] getPixels(Image image, int width, int height)
  int[] pixels = new int[width * height];
  try
  new PixelGrabber(image, 0, 0, width, height, pixels, 0, width).grabPixels();
   catch (InterruptedException ex)
  Logger.getLogger(ImageUtils.class.getName()).
  log(Level.SEVERE, null, ex);
  
  return pixels;
  
资源来自:
http://blog.csdn.net/chief1985/article/details/2229572

以上是关于java 实现图片的文字识别的主要内容,如果未能解决你的问题,请参考以下文章

tesseract-ocr+java实现图片文字识别

Java课程设计:捕获图片以及识别图中的文字

借助百度OCR,实现一键识别图片中文字,就是这么酷!

如何简单的实现图片文字识别

js怎么识别图片上的文字

Python人工智能之图片识别,Python3一行代码实现图片文字识别