讀取圖片上的文字
提示:本文是基于tess4j
前言
總是有一些與眾不同的需求在等著研發(fā)人員去探索,本文介紹如何通過java讀取圖片上的文字。
一、tess4j是什么?
說tess4j之前,先說說Tesseract,因為tess4j是基于它的封裝。
Tesseract的OCR引擎最先由HP實驗室于1985年開始研發(fā),至1995年時已經成為OCR業(yè)內最準確的三款識別引擎之一。Tesseract目前已作為開源頂目發(fā)布在GoogleProject,它與Leptonica圖片處理庫結合,可以讀取各種格式的圖像并將它們轉化成超過60種語言的文本,我們還可以不斷訓 練自己的庫,使圖像轉換文本的能力不斷增強,如果團隊深度需要,還可以以它為模板,開發(fā)出等合自身需求的OCR引擎。
Tess4J 是Java (JNA) 對 Tesseract OCR API 的封裝。
Tesseract:https://tesseract-ocr.github.io/
Tess4J官網:http://tess4j.sourceforge.net/codesample.html
語言庫:(需要科學上網下載)
https://github.com/tesseract-ocr/tessdata
https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata
Tess4J是Tesseract在Java PC上的應用。在英文和數(shù)字識別中性能還是不錯的,但是在中文識別中,無論速度還是識別率還是較弱,建議有條件的話,針對場景進行訓練,會獲得較好結果,本文僅對目前Tess4J的中文識別進行簡單介紹 。
二、使用步驟
1.POM引入庫
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.6.0</version>
</dependency>
2.實例代碼
public static void main1(String[] args) throws IOException {
Tesseract tesseract = new Tesseract();
//設置語言庫位置
tesseract.setDatapath("/xxx/tessdata");
//設置語言類型
tesseract.setLanguage("chi_sim");
//img
BufferedImage image = ImageIO.read(new File("a.png"));
try {
String result = tesseract.doOCR(image);
//PDF
//String result = tesseract.doOCR(new File("xxx.pdf"));
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
對代碼進行說明:
支持操作圖片:支持jpg、png等格式的圖片。
支持操作PDF。
代碼其實不多,因為已經封裝了很多細節(jié),我們只需要知道是借助Tesseract實體,通過給他設置語言庫和操作語言來實現(xiàn)OCR光學識別。
<
我這里將語言庫打包了,有需要的伙伴可以下載:
https://download.csdn.net/download/qq_38653981/87695195
其實Tesseract支持渲染格式類型有很多,上面一個枚舉其實可以看到,所以不僅僅是圖片,比如PDF也是支持的,原理基本都是OCR光學識別,當然,越清楚識別的越精準,如果有特殊要求,比如識別手寫的內容,需要做語言訓練,說白了就是要新增語言庫的識別對應關系,不然程序沒法匹配出來特殊的字,比如草書、特定簽名、特殊標識等。
如果需要針對手寫中文等特殊處理的字進行訓練,可以參考這位朋友寫的博客:
https://blog.csdn.net/weixin_29254673/article/details/113322249文章來源:http://www.zghlxwxcb.cn/news/detail-494464.html
總結
網上有很多操作的實現(xiàn)方式,我只是針對Tess4J進行了研究學習,更多的細節(jié)其實可以多去看看源碼,里面有一些更深入的講解,Tesseract因為涉及安裝,所以操作有點麻煩,但是更加精準。一般我們項目開發(fā),還是結合使用最佳,關鍵的東西就是語言庫,這個東西只要完善了,Tess4J會很強大。
以上就是本次分享的內容,歡迎大家點贊學習文章來源地址http://www.zghlxwxcb.cn/news/detail-494464.html
到了這里,關于java讀取圖片、PDF中圖片上的文字的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!