



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java 文字識別技術(shù)java文字識別程序的關(guān)鍵是尋找一個可以調(diào)用的 OCR引擎。tesseract-ocr就是一個這樣的 OCR 引擎,在 1985 年到 1995 年由 HP 實(shí)驗(yàn)室開發(fā), 現(xiàn)在在 Google 。 tesseract-ocr 3.0 發(fā)布,支持中文。不過 tesseract-ocr 3.0 不是圖形化界面的客戶端,別人寫的 FreeOCR 圖形化客戶端還不支持導(dǎo)入 新的 3.0 traineddata 。但這標(biāo)志著,現(xiàn)在有自由的中文 OCR 軟件了。java 中使用 tesseract-ocr3.01 的步驟如下:1. 下載安裝 tesseract-ocr-setup-3
2、.01-1.exe ( 3.0 以上版本才增加了中文識別)2. 在安裝向?qū)е锌梢赃x擇需要下載的語言包。3. 到網(wǎng)上搜索下載 java 圖形處理所需的 2 個包: jai_imageio-1.1-alpha.jar , swingx-1.6.1.jar4. java 程序清單:ImageIOHelper 類:import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.Iterator;import java.util.Locale;import javax.
3、imageio.IIOImage;import javax.imageio.ImageIO;import javax.imageio.ImageReader;import javax.imageio.ImageWriteParam;import javax.imageio.ImageWriter;import javax.imageio.metadata.IIOMetadata;import javax.imageio.stream.ImageInputStream;import javax.imageio.stream.ImageOutputStream;import com.sun.med
4、ia.imageio.plugins.tiff.TIFFImageWriteParam;public class ImageIOHelper public static File createImage(File imageFile, String imageFormat) File tempFile = null;try Iterator readers = ImageIO.getImageReadersByFormatName(imageFormat);ImageReader reader = readers.next();ImageInputStream iis = ImageIO.cr
5、eateImageInputStream(imageFile); reader.setInput(iis);/Read the stream metadataIIOMetadata streamMetadata = reader.getStreamMetadata();/Set up the writeParamTIFFImageWriteParam tiffWriteParam = new TIFFImageWriteParam(Locale.CHINESE); tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED);
6、/Get tif writer and set output to fileIterator writers = ImageIO.getImageWritersByFormatName(tiff);ImageWriter writer = writers.next();BufferedImage bi = reader.read(0);IIOImage image = new IIOImage(bi,null,reader.getImageMetadata(0); tempFile = tempImageFile(imageFile);ImageOutputStream ios = Image
7、IO.createImageOutputStream(tempFile); writer.setOutput(ios);writer.write(streamMetadata, image, tiffWriteParam); ios.close();writer.dispose(); reader.dispose(); catch (IOException e) e.printStackTrace();return tempFile;private static File tempImageFile(File imageFile) String path = imageFile.getPath
8、();StringBuffer strB = new StringBuffer(path); strB.insert(path.lastIndexOf(.),0);return new File(strB.toString().replaceFirst(?=/.)(/w+)$, tif);OCR 類:package com.hhp.util;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.ut
9、il.ArrayList;import java.util.List;import org.jdesktop.swingx.util.OS;public class OCR private final Stri ng LANG_OPTION = -I; /英文字母小寫 |,并非數(shù)字 1private final String EOL = System.getProperty(line.separator);private String tessPath = C:/Program Files (x86)/Tesseract-OCR;/private String tessPath = new F
10、ile(tesseract).getAbsolutePath();public String recognizeText(File imageFile,String imageFormat)throws Exception File tempImage = ImageIOHelper.createImage(imageFile,imageFormat);File outputFile = new File(imageFile.getParentFile(),output);StringBuffer strB = new StringBuffer();List cmd = new ArrayLi
11、st();if(OS.isWindowsXP()cmd.add(tessPath+/tesseract);else if(OS.isLinux()cmd.add(tesseract);elsecmd.add(tessPath+/tesseract);cmd.add();cmd.add(outputFile.getName();cmd.add(LANG_OPTION);cmd.add(chi_sim);/cmd.add(eng);ProcessBuilder pb = new ProcessBuilder();pb.directory(imageFile.getParentFile();cmd.
12、set(1, tempImage.getName();mand(cmd);pb.redirectErrorStream(true);Process process = pb.start();/tesseract.exe 1.jpg 1 -l chi_simint w = process.waitFor();/刪除臨時正在工作文件tempImage.delete();if(w=0)BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(outputFile.getAbsolutePath()
13、+.txt),UTF-8);String str;while(str = in.readLine()!=null)strB.append(str).append(EOL);in.close();elseString msg;switch(w)case 1:msg = Errors accessing files.There may be spaces in your images filename.; break;case 29:msg = Cannot recongnize the image or its selected region.;break;case 31:msg = Unsup
14、ported image format.;break;default:msg = Errors occurred.;tempImage.delete();throw new RuntimeException(msg);new File(outputFile.getAbsolutePath()+.txt).delete();return strB.toString();測試類 TestOCR :import java.io.File;import java.io.IOException;import com.hhp.util.OCR;public class OcrTest public static void main(String args) String path = C:/temp/OCRcode/4.png;System.out.println(ORC Test Begin);try String valCode = new OCR().recogn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆安徽省蕪湖縣一中高二物理第二學(xué)期期末監(jiān)測試題含解析
- 創(chuàng)新教育模式下的領(lǐng)導(dǎo)力挑戰(zhàn)與機(jī)遇
- 商業(yè)視角下的教育產(chǎn)業(yè)變革游戲化學(xué)習(xí)的融資前景
- 實(shí)驗(yàn)教學(xué)中學(xué)生情感教育的教育心理學(xué)方法
- 教育資源的優(yōu)化配置與科技力量的運(yùn)用
- 學(xué)習(xí)動力激發(fā)的教育心理學(xué)方法論
- 政府推動的教育政策在社區(qū)的落地情況
- 2025屆陜西省渭南市合陽縣高一物理第二學(xué)期期末監(jiān)測試題含解析
- 全面基礎(chǔ)護(hù)士考試題庫及答案
- 未來辦公模式的探索沉浸式學(xué)習(xí)與自適應(yīng)平臺的結(jié)合
- NB/T 10751-2021礦用往復(fù)式氣動注漿泵
- 裝卸搬運(yùn)課件
- GB/T 18391.2-2009信息技術(shù)元數(shù)據(jù)注冊系統(tǒng)(MDR)第2部分:分類
- GB/T 16924-2008鋼件的淬火與回火
- 基礎(chǔ)護(hù)理學(xué):肌內(nèi)注射
- 靜脈輸液(最終版)
- 藥品電子監(jiān)管碼管理sop
- 2018年上海高考?xì)v史試題及答案
- 醫(yī)療器械直調(diào)管理制度
- 中儲糧內(nèi)控管理地圖手冊
- 銀行不良貸款責(zé)任認(rèn)定及問責(zé)管理工作實(shí)施細(xì)則
評論
0/150
提交評論