亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java使用tess4j進(jìn)行圖片文字識別功能

 更新時(shí)間:2023年04月04日 10:08:01   作者:冰之杍  
Tess4J?是Java?(JNA)?對?Tesseract?OCR?API?的封裝,Tess4J是java直接可使用的jar包,而Tesseract?OCR是支持Tess4J進(jìn)文件文字識別的基礎(chǔ),Tess4J可直接使用Maven方式引入,這篇文章主要介紹了java使用tess4j進(jìn)行圖片文字識別,需要的朋友可以參考下

java使用tess4j進(jìn)行圖片文字識別

一、簡介

Tess4J 是Java (JNA) 對 Tesseract OCR API 的封裝。
很久之前需要做一個(gè)自動(dòng)登陸并對網(wǎng)頁上的未處理的數(shù)據(jù)進(jìn)行按鈕點(diǎn)擊,其中需要登陸的驗(yàn)證碼校驗(yàn),因此用了一下Tess4J,能識別一些簡單的文字和數(shù)字等,識別率好像一般,但出錯(cuò)了就重新?lián)Q一個(gè)驗(yàn)證碼再試,多試幾次也能成功?,F(xiàn)將之前的簡單使用過程記錄,備查。

Tess4J是對Tesseract OCR APIJava JNA 封裝。使java能夠通過調(diào)用Tess4J的API來使用Tesseract OCR。支持的格式包括TIFF、JPEG、GIF、PNG、BMP、JPEG、PDF。這個(gè)開始接觸的時(shí)候,我對這兩個(gè)東西還搞混淆了。明確說一下,Tess4J是java直接可使用的jar包,而Tesseract OCR是支持Tess4J進(jìn)文件文字識別的基礎(chǔ),Tess4J可直接使用Maven方式引入。

tesseract:https://tesseract-ocr.github.io/
官網(wǎng):http://tess4j.sourceforge.net/codesample.html

語言庫:
https://github.com/tesseract-ocr/tessdata
https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata

二、使用過程

1.maven依賴引入pom.xml

		<!-- tess4j start -->
		<dependency>
		    <groupId>net.sourceforge.tess4j</groupId>
		    <artifactId>tess4j</artifactId>
		    <version>5.6.0</version>
		</dependency>
		<!-- tess4j end -->

2.準(zhǔn)備好tessdata目錄下的語言庫文件

需要提前下載好相關(guān)的語言庫文件,這里我下了chi_sim.traineddata和eng.traineddata兩個(gè)
下載地址:https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata
下載好后放在代碼里面的目錄下

在這里插入圖片描述

3.寫測試代碼進(jìn)行測試

準(zhǔn)備好兩張圖片放置在代碼的資源目錄下,方便程序讀取,

圖片1

在這里插入圖片描述

圖片2

在這里插入圖片描述

兩張圖片放在資源目錄下

在這里插入圖片描述

代碼如下:

package cn.ljhua;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import javax.imageio.ImageIO;

import lombok.extern.slf4j.Slf4j;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

/**
 * Tess4jOcr測試示例
 * @author liujh
 */
@Slf4j
public class Tess4jOcrTest {
	
	public static void main(String[] args) {
		
		Tess4jOcrTest test = new Tess4jOcrTest();
		test.ocrTest();
		
	}
	
	public void ocrTest() {
		
		log.info("ocrTest start....");
		long startMs = System.currentTimeMillis();
		
		 //Tesseract的代碼開始---------------------->>>>
		ITesseract instance = new Tesseract();
		
		/**
		 * 組裝接好tessdata目錄的路徑字符串
		 */
		String filePathPre = System.getProperty("user.dir");
    	String dataPath = filePathPre + File.separator + "tessdata";
    	
    	/**
		 * 設(shè)置目錄datapath the tessdata path to set
		 * 否則會報(bào)Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.錯(cuò)誤
		 */
    	instance.setDatapath(dataPath);
    	//instance.setLanguage("eng");//默認(rèn),可以不寫
    	instance.setLanguage("chi_sim");//設(shè)置中文識別
		
    	String imageName = "verifyCode.png";
        try (InputStream inStream = this.getClass().getResourceAsStream("/" + imageName)) {
            
        	BufferedImage bImage = ImageIO.read(inStream);
        	//doOCR也可以傳參為File,我這里傳的BufferedImage
        	String result = instance.doOCR(bImage);
        	//識別的結(jié)果回來可能會帶回車,處理掉
        	result = result.replaceAll("\n", "");
        	log.info("圖片名:" + imageName +" 識別結(jié)果:"+ result);
        	
        } catch (IOException e) {
            log.error(e.getMessage(),e);
        } catch (TesseractException e) {
        	log.error(e.getMessage(),e);
		}
        
        imageName = "vCode2.jpg";
        try (InputStream inStream = this.getClass().getResourceAsStream("/" + imageName)) {
            
        	BufferedImage bImage = ImageIO.read(inStream);
        	//doOCR也可以傳參為File,我這里傳的BufferedImage
        	String result = instance.doOCR(bImage);
        	//識別的結(jié)果回來可能會帶回車,處理掉
        	result = result.replaceAll("\n", "");
        	log.info("圖片名:" + imageName +" 識別結(jié)果:"+ result);
        	
        } catch (IOException e) {
            log.error(e.getMessage(),e);
        } catch (TesseractException e) {
        	log.error(e.getMessage(),e);
		}
		//Tesseract的代碼結(jié)束--------------------->>>>
        
		log.info("ocrTest success. spend time :{} ms.", (System.currentTimeMillis() - startMs));
		
	}
}

測試結(jié)果截圖如:

在這里插入圖片描述

英文識別出來比較正常,中文識別出來帶了空格,如果需要可以通過代碼進(jìn)一步去掉空格,至此,tess4j的簡單使用測試完成。

三、源碼下載地址

最后提供源碼如下:

github: https://github.com/jxlhljh/tess4jOcrTest
gitee: https://gitee.com/jxlhljh/tess4jOcrTest

到此這篇關(guān)于java使用tess4j進(jìn)行圖片文字識別的文章就介紹到這了,更多相關(guān)java圖片文字識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MybatisPlus使用Wrapper實(shí)現(xiàn)條件查詢功能

    MybatisPlus使用Wrapper實(shí)現(xiàn)條件查詢功能

    這篇文章主要介紹了MybatisPlus使用Wrapper實(shí)現(xiàn)查詢功能,使用它可以實(shí)現(xiàn)很多復(fù)雜的查詢,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Eclipse配置SVN的幾種方法及使用詳情

    Eclipse配置SVN的幾種方法及使用詳情

    這篇文章主要介紹了Eclipse配置SVN的幾種方法及使用詳情,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • springboot 多模塊將dao(mybatis)項(xiàng)目拆分出去

    springboot 多模塊將dao(mybatis)項(xiàng)目拆分出去

    這篇文章主要介紹了springboot 多模塊將dao(mybatis)項(xiàng)目拆分出去,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • java實(shí)戰(zhàn)之桌球小游戲

    java實(shí)戰(zhàn)之桌球小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)戰(zhàn)之桌球小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 深入Spring Boot實(shí)現(xiàn)對Fat Jar jsp的支持

    深入Spring Boot實(shí)現(xiàn)對Fat Jar jsp的支持

    這篇文章主要介紹了深入Spring Boot實(shí)現(xiàn)對Fat Jar jsp的支持,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • MyBatis根據(jù)條件批量修改字段的方式

    MyBatis根據(jù)條件批量修改字段的方式

    這篇文章主要介紹了MyBatis根據(jù)條件批量修改字段的方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java中簡單實(shí)用Quartz概述

    Java中簡單實(shí)用Quartz概述

    Quartz是一個(gè)開源的Java調(diào)度框架,可以用來實(shí)現(xiàn)在指定的時(shí)間或時(shí)間間隔觸發(fā)任務(wù)執(zhí)行的功能,這篇文章主要介紹了Java中簡單實(shí)用Quartz,需要的朋友可以參考下
    2023-02-02
  • 快速了解Spring Boot

    快速了解Spring Boot

    這篇文章主要介紹了快速了解Spring Boot,介紹了其環(huán)境準(zhǔn)備,URL中的變量以及模板渲染等內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Guava反射工具使用示例詳解

    Guava反射工具使用示例詳解

    這篇文章主要為大家介紹了Guava反射工具使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Sa-Token記住我模式實(shí)現(xiàn)七天免登錄

    Sa-Token記住我模式實(shí)現(xiàn)七天免登錄

    這篇文章主要為大家介紹了Sa-Token記住我模式實(shí)現(xiàn)七天免登錄示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評論