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文字識別軟體進行圖像文字識別的方法,可以幫助到您!