Ⅰ (源碼分享)利用python識別提取圖像文字(中文英文都可以)
你想了解怎麼利用程序自動識別網站驗證碼嗎?識別提取圖像文字(中文英文都可以)
分享一點簡單有用的小項目:python
源碼分享如下:
看視頻教程鏈接:(點擊識別圖像文字視頻教程鏈接)
一、首先需要安裝 Tesseract模塊及 語言包
Tesseract OCR光學字元識別
Windows系統:
安裝網站 (放在不需要許可權的純英文路徑下):
: https://digi.bib.uni-mannheim.de/tesseract/
可以下載一些語言包:
https://github.com/tesseract-ocr/
安裝完成後,如果想要在命令行中使用Tesseract,那麼應該設置環境變數。
還有一個環境變數需要設置的是,要把訓練的數據文件路徑也放到環境變數中。
在環境變數中,添加一個TESSDATA_PREFIX=C:path_to_tesseractdata eseractdata。
在Python代碼中操作tesseract。需要安裝一個庫,叫做pytesseract。通過pip的方式即可安裝:
pip install pytesseract
並且,需要讀取圖片,需要藉助一個第三方庫叫做PIL。通過pip list看下是否安裝。如果沒有安裝,通過pip的方式安裝:
pip install PIL
使用pytesseract將圖片上的文字轉換為文本文字的示例代碼如下:
Ⅱ 如何在windows上編譯Tesseract OCR
最近要用java實現一個驗證碼識別系統,選了半天之後最終決定用Tesseract-OCR作為識別引擎。既然是java+Tesseract-OCR,自然就首選Tess4J。由於Tess4J直接且僅提供了編譯成dll的3.02版本的Tesseract-OCR,而我的最終目標Linux下使用且想自己更換Tesseract-OCR的版本,就決定自己動手對Tesseract-OCR的代碼進行編譯。而這篇文章就是這次研究的中間產物。
雖然Tess4J目前支持的是Tesseract-OCR 3.02,但Tesseract-OCR無法在Tess4J中直接進行使用,還需要使用capi進行封裝,但這個就是後話了,本文僅介紹如何在windows環境下編譯Tesseract-OCR。
准備工作
根據GoogleCode上下載Tesseract-OCR的windows安裝版本測試的結果及官方說明文檔,Tesseract-OCR支持tiff、png、gif、bmp、jpeg等格式,所以首先就按照這個目標來收集所需的支持庫。由於最終目標是在Linux下編譯成功,所以我選擇了msys+tdm-gcc來模擬Linux下的編譯過程。
需要下載的庫有:
1) zlib-1.2.7
2) libpng-1.5.10
3) giflib-4.1.6
4) libungif-4.1.4(這個似乎在最終的編譯過程中沒有起作用)
5) jpeg-8d
6) jbigkit-2.0
7) tiff-3.9.5
8) libwebp-0.1.3 9) leptonica-1.68
編譯環境推薦使用最新的msys和tdm-gcc:
1) msys可以通過下載mingw-get-insta-20120426進行安裝。
2) tdm-gcc推薦使用4.5.2版本。
Tesseract-OCR 3.02可以通過svn獲取,地址是:http://tesseract-ocr.googlecode.com/svn/trunk
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
編譯
本節所列出的為完整的編譯過程及步驟順序,請按照順序進行。以下所述步驟均在msys+tdm-gcc4.5.2測試通過。執行命令前,請先解壓縮,並進入解壓縮後的目錄。
zlib-1.2.7
解壓後進入代碼目錄,執行以下命令: ./configure
make -f win32/makefile.gcc
make -f win32/makefile.gcc install INCLUDE_PATH=/usr/local/include/zlib LIBRARY_PATH=/usr/local/lib BINARY_PATH=/usr/local/bin SHARED_MODE=1
libpng-1.5.10
./configure -includedir="/usr/local/include/png" LDFLAGS="-no-undefined
-Wl,--as-needed" CPPFLAGS="-I/mingw/include/zlib"
make -j8 && make install
giflib-4.1.6
./autogen.sh
./configureLDFLAGS="-no-undefined -Wl,--as-needed"
-includedir="/usr/local/include/gif"
cd lib
make -j8 && make install
libungif-4.1.4
./autogen.sh ./configure LDFLAGS="-no-undefined -Wl,--as-needed"
-includedir="/usr/local/include/ungif"
cd lib
make -j8 && make install
jpeg-8d
./configure
LDFLAGS="-no-undefined
-Wl,--as-needed"
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
-includedir="/usr/local/include/jpeg"
make -j8 && make install
jbigkit-2.0
jbigkit由tiff組件所使用,雖不是必選項,但為了保證過程的完整這里也順帶一提。
由於jbig的Makefile中僅提供生成靜態庫的動作,因此必須自己手動在Makefile中加入生成動態庫的部分,否則在鏈接tiff庫時也僅能生成靜態庫。從而影響到leptonica的鏈接。
tiff-3.9.5
./autogen.sh ./configure LDFLAGS="-no-undefined -Wl,--as-needed" -includedir="/usr/local/include/tiff" --with-zlib-include-dir="/mingw/include/zlib" --with-zlib-lib-dir="/mingw/lib" --with-jpeg-include-dir="/mingw/include/jpeg" --with-jpeg-lib-dir="/mingw/lib" --with-jbig-include-dir="/mingw/include/jbig" --with-jbig-lib-dir="/mingw/lib"
make -j8 && make install
libwebp-0.1.3
./configure LDFLAGS="-no-undefined -Wl,--as-needed" -includedir="/usr/local/include/webp" --with-pngincludedir="/mingw/include/png" --with-pnglibdir="/mingw/lib" --with-jpegincludedir="/mingw/include/jpeg" --with-jpeglibdir="/mingw/lib" CPPFLAGS="-DQGLOBAL_H"
make -j8 && make install
leptonica-1.68
autobuild ./configure -includedir="/usr/local/include" LDFLAGS="-no-undefined" CPPFLAGS="-I/mingw/include/zlib -I/mingw/include/png -I/mingw/include/gif -I/mingw/include/ungif -I/mingw/include/jpeg -I/mingw/include/tiff -I/mingw/include/webp"
make -j8 && make install 說明:
使用了zlib庫後,可能導致編譯出錯。這時請修改pngio.c: 在#include "png.h"後添加 #ifdef HAVE_LIBZ #include "zlib.h"
Ⅲ tesseract 圖片驗證測試錯誤,如何處理error
也是初核山拆學者,我想到一個辦法,就是在image.png前面加個絕對路徑,然後CMD下直接運行如下命令:tesseract D:PythonPython37-32Scriptsimage.png D:PythonPython37-32Scripts esult233 然後就會在D:PythonPython37-32Scripts下自動生成一個名為result233的.txt文本。
1.把唯肢image.png圖片存放到D:PythonPython37-32Scripts(路徑隨便自己定義)
------------------------------------------the end---------------------------------------------
Ⅳ 安裝pip3 install sanic
tesserocr是Python的一個OCR識別庫,但其實是對tesseract做的一層Python API封裝,所以它的核心是tesseract,因此安裝tesserocr之前,需要先安裝tesseract.
這里我安裝的是 tesseract-ocr-setup-3.05.02-20180621.exe
安裝的語言包的時候,耐心等待,會很久。
驗證安裝
安裝成功之後驗證圖片:
在命令行下輸入:tesseract image.png stdout -l eng
Tesseract配置環境變數
配置TESSDATA_PREFIX:
添加至Path變數:
復制tessdata整個文件夾至Python安裝目錄中:
安裝Tesserocr
遇到的很坑的就是在安裝Tesserocr的時候,pip3 install pillow命唯陵令並沒有那麼順利
問題一:pip3 install pillow錯誤如下:
先不要著急去安裝Microdoft Visual C++ 14.0,我們換一種安裝方式
首先下載對應的.whl文件,一定要與tesseract版本配對:
運行命令:pip3 install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl
問題來了,並不能安裝成功,反而提示:tesserocr-2.2.2-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform
解決如下:查看pip支持的文件名還有版本
$ import pip
$ import pip._internal
$ print(pip._internal.pep425tags.get_supported())
但是tesserocr暫時沒有看到cp37的版本.whl文件,由於我目前本地是python3.7.0
所以最終,我選擇將python版指盯戚本往下降,重新安則旁裝了python3.6.6
然後再次運行:pip3 install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl
驗證安裝
文章最後發布於: 2018-09-14
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/zoujin6649/article/details/82697031
Ⅳ 如何在node 里使用tesseract
打開 tessdata/configs/digits 改成滾敗配 tessedit_char_whitelist 總大指之這個就是白名單,想識別誰就寫進去 另外命令里需要用digits,不枯嘩然上邊的設置沒用,例如 tesseract xxx.jpg result -psm 10 digits
Ⅵ tesseract-ocr怎麼設置只匹配數字+大寫字母
C:Program Files (x86)Tesseract-OCR essdataconfigs文件夾目錄下,復制digits並命名為yours,用notepad++編輯
tessedit_char_
如果你是使用的3.04,按教程直接使用
tesseractC:1.jpgC:1yours
你會很輕松地得到想要的結果。
但是如果你使用的是4.00,耐殲你會發現白名單毫無作用。
奇怪,難道是配置環境出錯了?還是字母打錯了?都不是。
tesseract提供了OCR引擎模式。
0=僅限原始Tesseract
1=只有神經網路LSTM
2=Tesseract+LSTM
3=基於可用的默認值
目前LSTM是無法支持轎畝碧白名單的,並且似乎tesseract的團隊無意去解決閉舉這個問題。
選擇原始tesseract 即 --oem 0
tesseract--oem0C:1.jpgC:1yours
這樣你就能使用白名單了。但是識別正確率會比原先低。
Ⅶ mac安裝tesseract4.0 tesseract命令在哪個目錄下
tesseract-ocr(開源圖像識別引擎)
1.打開下載的壓縮包,找到「tesseract-ocr-setup-3.02.02.exe」,雙擊運行,進入下圖所示安裝界面,點擊「next」。
2.勾選「I
accept....」,然後點擊「next」。
3.選擇可以使用該軟體的用戶,這里我們選擇第一個,任何使用該電腦的人都可以使用它,然後點擊腔桐拆"next"。
4.選擇安裝路徑,之後點擊「next」。
5.選擇需要安裝的組件,默認是沒有勾選語言組件的,我們可以勾選自己想要識輪粗別的語言。勾選簡體中文的話,那麼就可以識別有簡體中文的圖像了,其他語言同理。
6.正在安裝中,請耐心等待。
7.安裝完成之後我們伍棗打開cmd,輸入「tesseract」,出現下圖所示表示安裝成功
/
Ⅷ 如何用Tesseract做日文OCR
下載chi_sim.traindata字型檔
下鬧仔載tesseract-ocr-setup-3.02.02.exe
下載地址:http://code.google.com/p/tesseract-ocr/downloads/list
下載jTessBoxEditor用於修改box文件
下載地址:http://download.csdn.net/detail/a443475601/5896893 裡面自帶java運行庫,安裝後 然後啟動命令行 java -jar jTessBoxEditor.jar即可打開
為了方便 tif文面命名格式[lang].[fontname].exp[num].tif
lang是語言 fontname是字體
比如我們要訓練自定義字型檔 image 字體名MyFont
那麼我們把tif文件重命名 image.MyFont.exp0.tif
下面開始訓練字型檔:
1、tesseract image.MyFont.exp0.tif image.MyFont.exp0 -l chi_sim batch.nochop makebox
該步驟會生成一個image.MyFont.exp0.box文件
把tif文件和box文件放在同一目錄,用jTessBoxEditor.jar打開tif文件,然後根據實際情型彎舉況修改box文件
2、tesseract image.MyFont.exp0.tif image.MyFont.exp0 nobatch box.train
該步驟生成一個image.MyFont.exp0.tr文件
3、unicharset_extractor image.MyFont.exp0.box
該步驟生成一個unicharset文件
4、新建一個font_properties文件
裡面內容寫入MyFont 0 0 0 0 0 表示默認普通字體
5、運行命令
shapeclustering -F font_properties -U unicharset image.MyFont.exp0.tr
mftraining -F font_properties -U unicharset -O image.unicharset image.MyFont.exp0.tr
cntraining image.MyFont.exp0.tr
6、把目錄下的unicharset、inttemp、pffmtable、shapetable、normproto這五個文件前面都卜碧加上image.
7、執行combine_tessdata image.
然後把image.traineddata放到tessdata目錄
8、用新的字型檔對圖片進行分析
tesseract test.tif output -l image
Ⅸ tesseract 訓練字型檔 python 怎麼調用
1、系統環境
OS X 10.7
MacBook Pro(13英寸,2012年初期)
Python 2.7
2、需要軟體包
a、需要安裝PIL以及pytesseract庫
Python-tesseract是一個基於google's Tesseract-OCR的獨立封裝包;
Python-tesseract功能是識別圖片文件中文字,並作為返回參數返回識別結果;
Python-tesseract默認支持tiff、bmp格式圖片,只有在安裝PIL之後,才能支持jpeg、gif、png等其他圖片格式;
Python-tesseract支持python2.5及更高版本;
PIL[Python Imaging Library]來支持更多的圖片格式;
b、需要安裝google tesseract-ocr
執行命令行 tesseract.exe 1.png output -l eng ,可以識別1.png中文字,並把識別結果輸出到output.txt中;
Pytesseract對上述過程進行了二次封裝,自動調用tesseract.exe,並讀取output.txt文件的內容,作為函數的返回值進行返回。