Linux + Java 实现图文识别,图文提取
Linux + Java 实现图文识别,图文提取
这是一篇Linux + Java 实现图文识别,图文提取完整步骤以及完整环境调试的详细教程。是我在做这个过程中亲测和自用的,里面所用的资源我也整理好了,直接复制脚本运行就好啦。
环境
- Linux
- Java
准备步骤
安装gcc
yum install gcc gcc-c++ make
安装工具包
yum groupinstall "Development Tools"
安装解析图片依赖的包
yum -y install libjpeg* libpng* freetype* gd* giflib* libtiff* zlib*
安装 leptonica(也可以在网上自己找包)
wget http://download.wuxo.top/linux/leptonica-1.79.0.tar.gztar -zxvf leptonica-1.79.0.tar.gzcd eptonica-1.79.0./configure&&make&&make install&&ldconfig
安装 tesseract(也可以在网上自己找包)
wget http://download.wuxo.top/linux/3.04.00.tar.gztar -zxvf 3.04.00.tar.gzcd tesseract-3.04.00./autogen.sh&&./configure&&make&&make install&&ldconfig
将/usr/local/lib目录下的so文件拷贝到 /usr/lib64/
cp /usr/local/lib/*.so.* /usr/lib64/
安装中文语言包(需记录文件存放路径)(也可以在网上自己找包)
wget http://download.wuxo.top/linux/chi_sim.traineddata
核心java代码实现
try { ITesseract instance = new Tesseract(); instance.setDatapath("");//外部中文包的路径,上面记录的路径 instance.setLanguage("chi_sim");//中文包名 String result = instance.doOCR(new File(""));//需要识别的图片路径 //result结果} catch (Exception e) { //操作失败}
附带Controlle接口写法
/** * 返回状态和内容的实体类 */@Data@AllArgsConstructor@NoArgsConstructorpublic class BaseResult { private Integer code; // 0:请求失败 1:请求成功 private Object data; //错误的起因或者者正确的内容}
/** * 图文提取 * @param file * @return文件识别的结果 */@RequestMapping(value = "imgCode",method = RequestMethod.POST)public BaseResult imgCode(@RequestParam("file") MultipartFile file) { BaseResult baseResult = new BaseResult(); File file1 = null;//创立临时文件 if (!file.isEmpty()) {//首先判断是不是空的文件 int begin = file.getOriginalFilename().indexOf(".");//对文文件的全名进行截取而后在后缀名进行删选。 int last = file.getOriginalFilename().length(); String a = file.getOriginalFilename().substring(begin, last);//取得文件后缀名 if (a.endsWith(".jpg") || a.endsWith(".png")) { file1 = new File("tessdata/"+ UUID.randomUUID().toString().replaceAll("-","")+a);//临时文件名 try { FileUtils.copyInputStreamToFile(file.getInputStream(), file1); ITesseract instance = new Tesseract(); instance.setDatapath("D:\\Download\\tessdata");//外部中文包的路径 instance.setLanguage("chi_sim");//中文包名 String result = instance.doOCR(file1); baseResult.setCode(1); baseResult.setData(result); } catch (Exception e) { baseResult.setCode(0); baseResult.setData("操作失败"+e.getMessage()); } } else { baseResult.setCode(0); baseResult.setData("文件格式有误"); } } if (file1 != null) { file1.delete();//假如临时文件存在,就删除文件 } return baseResult;}
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Linux + Java 实现图文识别,图文提取
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Linux + Java 实现图文识别,图文提取