Java ORC图片识别
生活随笔
收集整理的這篇文章主要介紹了
Java ORC图片识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java ORC圖片識別
背景
最近公司需要將一批登記表的圖片,手動更名為編碼 .jpg,而這個編碼號可以在登記表中找到。于是,上網調研,發現具有現成簡單的技術來做圖片識別。
使用技術
java + tess4j + Tesseract-OCR
gitee 代碼地址
實現步驟
步驟1:
首先安裝 Tesseract-OCR 客戶端。
客戶端下載地址:https://digi.bib.uni-mannheim.de/tesseract/ <博主使用這個下載的客戶端 使用版本為[v4.0.0-beta.4.20180912.exe]>
github項目地址:https://github.com/tesseract-ocr/ <博主使用這個查看的資料>
安裝完成后的目錄結構
其中重要的2個程序為 當前目錄下的tesseract.exe
使用cmd可以直接使用 tesseract.exe 程序
tessdata/ 識別的語言庫
步驟2:
新建一個java項目,引入依賴
<dependencies><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.0.1</version></dependency></dependencies>tess4j 盡量和 Tesseract-OCR 版本相匹配。 <博主遇到一次問題,版本不匹配,tess4J 輸出日志也十分簡短,后來提高版本解決>
步驟3:
代碼實現:
File srcFile = new File("C:\\Users\\a9747\\Desktop\\jpg2\\Y0523-0631\\Y0523-0631\\Image_00056.jpg");BufferedImage bufferedImage = ImageIO.read(srcFile);ITesseract instance =new Tesseract();//設置安裝Tesseract-OCR目錄下的 tessdata文件夾instance.setDatapath("D:\\orc5\\Tesseract-OCR\\tessdata");//選擇語言instance.setLanguage("chi_sim");try{System.out.println("開始識別");//Rectangle 為識別圖片的范圍,可以不傳這個參數String result = instance.doOCR(bufferedImage,new Rectangle(471,359,430,85));//識別到的文本內容System.out.println(result);Pattern pattern =Pattern.compile("(01[0-9]{10}|320[0-9]{9})");Matcher matcher = pattern.matcher(result);if(matcher.find()){String number = matcher.group();System.out.println("識別到編號:"+number);}}catch (Exception e){e.printStackTrace();}}后記
? github項目地址中有各國語言的訓練數據,可以下載到本地。
? 如果發現識別出來的效果達不到自己需要的效果,可以選擇:
* 切換使用語言庫 * 更加精準的定義需要識別的區域 * 網上尋找更好的訓練數據 * 自己訓練語言數據總結
以上是生活随笔為你收集整理的Java ORC图片识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谈谈写博客的意义和感受
- 下一篇: word打开html显示空白,电脑打开W