赞
踩
识别率在90%以上
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.5.4</version>
</dependency>
import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.TesseractException; import org.springframework.stereotype.Service; import java.io.File; import java.io.InputStream; import java.net.URL; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; @Service public class OcrService { public String recognizeText(File imageFile) throws TesseractException { Tesseract tesseract = new Tesseract(); // 设定训练文件的位置 tesseract.setDatapath("D:\\xxxxx\\tessdata"); // 指定识别类型 tesseract.setLanguage("chi_sim"); return tesseract.doOCR(imageFile); } public String recognizeTextFromUrl(String imageUrl) throws Exception { URL url = new URL(imageUrl); InputStream in = url.openStream(); Files.copy(in, Paths.get("downloaded.jpg"), StandardCopyOption.REPLACE_EXISTING); File imageFile = new File("downloaded.jpg"); return recognizeText(imageFile); } }
import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; @RestController @RequestMapping("/api/ocr") public class OcrController { private final OcrService ocrService; // 使用构造器注入OcrService public OcrController(OcrService ocrService) { this.ocrService = ocrService; } @PostMapping("/upload") public ResponseEntity<String> uploadImage(@RequestParam("file") MultipartFile file) { try { File convFile = new File(System.getProperty("java.io.tmpdir")+"/"+file.getOriginalFilename()); file.transferTo(convFile); String result = ocrService.recognizeText(convFile); return ResponseEntity.ok(result); } catch (Exception e) { e.printStackTrace(); return ResponseEntity.badRequest().body("识别发生错误:" + e.getMessage()); } } @GetMapping("/recognize-url") public ResponseEntity<String> recognizeFromUrl(@RequestParam("imageUrl") String imageUrl) { try { String result = ocrService.recognizeTextFromUrl(imageUrl); return ResponseEntity.ok(result); } catch (Exception e) { e.printStackTrace(); return ResponseEntity.badRequest().body("从URL识别发生错误:" + e.getMessage()); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。