<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring Boot 集成 tess4j 實現圖片識別文本

      前言

      Tesseract 是世界上最知名、應用最廣泛的開源 OCR 引擎。它由 Google 積極維護,功能強大,支持多種語言和平臺。雖然它在處理理想條件下的印刷文本時表現出色,但其精度會受到圖像質量和復雜性的影響。它通常作為核心引擎被集成到各種應用程序、腳本和更大型的系統中,是許多需要文本提取功能的項目的首選開源解決方案。

       

      一、安裝 tesseract (OCR

      安裝鏈接:Index of /tesseract (uni-mannheim.de)

      二、下載訓練數據

      通過網盤分享的文件:tessdata各語言集合包.zip
      鏈接: https://pan.baidu.com/s/13oPR2r7qOE6lt6SgbpWOQA 提取碼: uaaw 

      三、創建springboot項目

       1、導入依賴

      <dependency>
                  <groupId>net.sourceforge.tess4j</groupId>
                  <artifactId>tess4j</artifactId>
                  <version>5.3.0</version>
      </dependency>

      2、編寫配置類

      package com.songwp.config;
      
      import net.sourceforge.tess4j.Tesseract;
      import org.springframework.beans.factory.annotation.Value;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      
      /**
       * @ClassName:TesseractOcrConfig
       * @Description: ocr配置類
       * @Author: songwp
       * @Date: 2025/6/29 19:24
       */
      @Configuration
      public class TesseractOcrConfig {
      
          @Value("${tess4j.data-path}")
          private String dataPath;
      
          @Value("${tess4j.language}")
          private String language;
      
          @Bean
          public Tesseract tesseract() {
      
              Tesseract tesseract = new Tesseract();
              // 設置訓練數據文件夾路徑
              tesseract.setDatapath(dataPath);
              // 設置為中文簡體
              tesseract.setLanguage(language);
              return tesseract;
          }
      }

      3、編寫controller

      package com.songwp.controller;
      
      import com.songwp.service.OcrService;
      import lombok.extern.slf4j.Slf4j;
      import net.sourceforge.tess4j.TesseractException;
      import org.springframework.http.MediaType;
      import org.springframework.web.bind.annotation.PostMapping;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RequestParam;
      import org.springframework.web.bind.annotation.RestController;
      import org.springframework.web.multipart.MultipartFile;
      import java.io.IOException;
      
      /**
       * @ClassName:OcrController
       * @Description: ocr識別controller
       * @Author: songwp
       * @Date: 2025/6/29 18:40
       */
      @RestController
      @RequestMapping("/ocr")
      @Slf4j
      public class OcrController {
      
          private final OcrService ocrService;
      
          public OcrController(OcrService ocrService) {
              this.ocrService = ocrService;
          }
      
          @PostMapping(value = "/recognize", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
          public String recognizeImage(@RequestParam("file") MultipartFile file) throws TesseractException, IOException {
      
              log.info(ocrService.recognizeText(file));
              // 調用OcrService中的方法進行文字識別
              return ocrService.recognizeText(file);
          }
      }

      5、編寫service

      package com.songwp.service;
      
      import net.sourceforge.tess4j.TesseractException;
      import org.springframework.web.multipart.MultipartFile;
      import java.io.IOException;
      
      /**
       * @ClassName:OcrService
       * @Description: ocr識別接口
       * @Author: songwp
       * @Date: 2025/6/29 19:27
       */
      public interface OcrService {
      
          public String recognizeText(MultipartFile imageFile) throws IOException, TesseractException;
      }

      5、編寫service實現類

      package com.songwp.service.impl;
      
      import com.songwp.service.OcrService;
      import net.sourceforge.tess4j.Tesseract;
      import net.sourceforge.tess4j.TesseractException;
      import org.springframework.stereotype.Service;
      import org.springframework.web.multipart.MultipartFile;
      
      import javax.imageio.ImageIO;
      import java.awt.image.BufferedImage;
      import java.io.ByteArrayInputStream;
      import java.io.IOException;
      import java.io.InputStream;
      
      /**
       * @ClassName:OcrServiceImpl
       * @Description: ocr識別實現類
       * @Author: songwp
       * @Date: 2025/6/29 19:28
       */
      @Service
      public class OcrServiceImpl implements OcrService {
          private final Tesseract tesseract;
      
          public OcrServiceImpl(Tesseract tesseract) {
              this.tesseract = tesseract;
          }
      
          /**
           *
           * @param imageFile 要識別的圖片
           * @return
           */
          @Override
          public String recognizeText(MultipartFile imageFile) throws IOException, TesseractException {
              // 轉換
              InputStream sbs = new ByteArrayInputStream(imageFile.getBytes());
              BufferedImage bufferedImage = ImageIO.read(sbs);
      
              // 對圖片進行文字識別
              return tesseract.doOCR(bufferedImage);
          }
      }

      6、運行調試

       注:圖片顏色比較多的時候有有點識別不清楚了以及一些帶字體的文本

      參考鏈接:Spring Boot 集成 tess4j 實現圖片識別文本_springboot tesseract-CSDN博客

      posted @ 2025-06-29 20:24  [奮斗]  閱讀(461)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本一本正道综合久久dvd| 江西省| 亚洲国产色婷婷久久99精品91| 自拍亚洲综合在线精品| 欧洲极品少妇| 亚洲爆乳WWW无码专区| 又大又粗欧美成人网站| 任你躁国产自任一区二区三区| 午夜福利精品国产二区| 国产极品精品自在线不卡| 无码国内精品久久人妻蜜桃| 国产成人a在线观看视频免费 | 亚洲三区在线观看内射后入| 久久精品国产99国产精品亚洲 | 国产日韩在线亚洲色视频| 国产精品国三级国产av| JIZZJIZZ国产| 在线看片免费不卡人成视频| 久热综合在线亚洲精品| av永久免费网站在线观看 | 亚洲伊人久久精品影院| 国产亚洲一区二区三不卡| 无码精品人妻一区二区三区中| 欧美猛少妇色xxxxx猛叫| 久久国产精品伊人青青草| 婷婷色香五月综合缴缴情香蕉| 亚洲成在人线av无码| 99人体免费视频| 国产精品美女一区二区三| 精品久久人人做爽综合| 欧美午夜精品久久久久久浪潮| 国产91精品调教在线播放| 国产在线拍揄自揄视频网试看| 亚洲色欲色欱WWW在线| 蜜臀精品视频一区二区三区| 最新亚洲av日韩av二区| 亚洲国产欧美在线观看片| 国产永久免费高清在线| 中国凸偷窥xxxx自由视频| 精品精品国产国产自在线| 国语自产精品视频在线看|