利用java完成图像文字识别和翻译,实现拍照翻译的功能

您所在的位置:网站首页 识别图片文字并翻译 利用java完成图像文字识别和翻译,实现拍照翻译的功能

利用java完成图像文字识别和翻译,实现拍照翻译的功能

2024-07-12 13:42| 来源: 网络整理| 查看: 265

需求:利用java完成图像文字识别和翻译,实现拍照翻译的功能

​ 可拆分为以下两个小的功能逐一完成:

(1)实现图像文字识别

(2)将识别出来的文字进行翻译。

1.实现图像文字识别

​ 利用Tess4J进行图像文字识别

1.1 为方便集成tess4j的jar包,我们先创建一个maven项目,将所需jar包引入pom.xml

net.sourceforge.tess4j tess4j 4.4.0

1.2 我们还需要下载语言数据包,进入此仓库https://github.com/tesseract-ocr/tessdata将常用的chi_sim.traineddata 和 eng.traineddata语言包下载下来,存放在一个文件夹中,后面图像文字识别需要用到。我存放在F:\IDEA1\xiaochengxu\src\main\resources\lang

1.3 编写java代码调用Tess4J和语言包进行图像文字识别。

//图片识别 传一个图片和语言(eng/chi_sim) @PostMapping("/tess4J") public String Tess4J(@RequestParam("img") MultipartFile img,String language) throws Exception { // 语言库位置(修改为跟自己上一步下载的语言库文件夹的路径) String lagnguagePath = "F:\\IDEA1\\xiaochengxu\\src\\main\\resources\\lang"; ITesseract instance = new Tesseract(); //设置训练库的位置 instance.setDatapath(lagnguagePath); //chi_sim简体中文, eng英文 instance.setLanguage(language); //chi_sim String result = null; try { long startTime = System.currentTimeMillis(); result = instance.doOCR(MultipartFileToFile.multipartFileToFile(img)); //MultipartFileToFile类在下方 long endTime = System.currentTimeMillis(); System.out.println("Time is:" + (endTime - startTime) + " 毫秒"); } catch (TesseractException e) { e.printStackTrace(); } System.out.println("result: "); System.out.println(result); return result; } //MultipartFile转成file public class MultipartFileToFile { public static File multipartFileToFile(MultipartFile file) throws Exception { File toFile = null; if (file.equals("") || file.getSize()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3