1. java 实现图片的文字识别
摘要图像识别是目前很热门的研究领域,涉及的知识很广,包括信息论、模式识别、模糊数学、图像编码、内容分类等等。本文仅对使用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 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.e.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 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.e.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
2. 学一学!Python3一行代码实现图片文字识别的示例
自学Python3第5天,今天突发奇想,想用Python识别图片里的文字。没想到Python实现图片文字识别这么简单,只需要一行代码就能搞定
?
1
2
3
4
5
from
PIL
import
Image
import
pytesseract
#上面都是导包,只需要下面这一行就能实现图片文字识别
text
=
pytesseract.image_to_string(Image.
open
(denggao.jpeg),lang
=
chi_sim)
print
(text)
我们以识别诗词扮轮烂为例
下面是我们要识别的图片
先看下效果图
我们运行代码后识别的结果,有几个字没有正确识别,但是大多数字都能识别出来。
?
1
2
3
4
风急天高猿啸哀 渚芸胄芳少白鸟飞凤
无边落木萧萧下, 不尽长量工盲衮宕衮来
万里悲秋常1乍窨, 百年多病独登氤
艰难苦恨擎霜量 漂倒新停澍酉帆
一行代码就能识别图片,我们背后要做些准备工作的
这里我们需要用到两个库:pytesseract和PIL
同时我们还需要安装识别引擎tesseract-ocr
下面就来讲讲这几个库的安装,因为只有这几个库安装好以后Python才能实现桐扮一行代码实现图片文字识别
一,pytesseract和PIL的安装
安装这两个包可以借助pip
- 1,命令行安装
?
1
2
pip install PIL
pip install pytesseract
- 2,如果你用的pycharm编辑器,就可以直接借助pycharm实现快速安装。
在pycharm的Settings设置页按照下面步骤操作
这样就能成功安装pytesseract,安装PIL只需要在上面第三步里搜索PIL并点击安装即厅漏可
这时我们安转好了库,运行下面代码
?
1
2
3
4
from
PIL
import3. word2010中如何识别图片文字
利用office2010版画功能进行图片文字识别,方便实用,那么如何具 体操 作呢?在下面就由我给大家分享下word2010识别图片文字的技巧,希望能帮助到您,有需要的朋友可以来看看哦。
word2010识别图片文字的步骤如下:
步骤一:首先将准备识别的文字用扫描仪扫描成图片,用手机拍也可以,但效果不太理想。
步骤二:打开开始——程序——Microsoft office——Microsoft OneNote软件
步骤三:然后在Microsoft OneNote中利用文件——打开或直接将图片拖入。
步骤四:在插入图片上点击鼠标右键——编辑替换文字,弹“图片可选文字”窗口,文字识别成功。
步骤五:但不得不说的是文字识别的效果并不理想,可能与图片质量有关,扫描的会好点,还可以用编辑软件调整一下图片对比度,效果也比较好
4. android手机怎么调用OCR识别图像中的文字
下面是使用ocr文字识别软件识别图像文字的参考方法:
1、在电脑上准备一个ocr文字识别软件,并打开;
2、通过左上角把图片添加进去;
3、在上面选择文件的识别格式和识别效果;
4、点击左上角的添加文件按钮,开始进行图像文字识别;
希望上面使用ocr文字识别软件进行图像文字识别的方法,可以帮助到您!