)
簡介一套將Tesseract OCR引擎安裝文件與中文簡體語言包整合到一起的開發(fā)資料面向需要在人工智能或Python這類編程項目中實現(xiàn)文字識別功能的開發(fā)者能夠解決安裝配置繁瑣、缺少中文識別數(shù)據(jù)等常見問題適用于圖片文字提取、文檔掃描識別等通用場景。壓縮包內(nèi)含722個文件總大小約33.78MB主體由274個C頭文件和271個C源文件構(gòu)成便于有二次開發(fā)需求的讀者查看底層實現(xiàn)與調(diào)用流程同時附帶traineddata中文模型、多個訓練與構(gòu)建輔助文件、Shell腳本、示例圖片及說明文檔既支持開箱即用地直接識別也保留了自定義訓練和參數(shù)調(diào)整的擴展空間。包內(nèi)還提供了多個OCR核心工具的手冊頁面及演示樣例能幫助使用者理解命令行參數(shù)、輸出格式與識別流程遇到問題時可快速對照排查。目前已有3941人學習適合剛接觸OCR的初學者也適合希望快速在項目中落地中文識別并繼續(xù)深挖的開發(fā)者。1. 拿到 tesseract-ocr安裝包和中文語言包.rar真正難的不是安裝而是讓中文被識別網(wǎng)上搜“tesseract-ocr安裝包和中文語言包.rar”的人多半不是來研究 OCR 原理的而是手里有一批中文截圖、掃描件或單據(jù)圖片想用 Tesseract 批量把文字提取出來。這類 rar 的常見構(gòu)成是 Tesseract 主程序安裝包加一個 chi_sim.traineddata 中文語言包目的就是解決一個痛點官方主程序默認只帶英文語言包中文識別需要單獨找訓練數(shù)據(jù)而很多環(huán)境下這個下載過程經(jīng)常失敗或不穩(wěn)定。于是有人把主程序和中文語言包打成一個離線安裝包流傳拿到就能裝。這個包能解決“裝不上”和“沒中文”兩層問題但裝完后還有個更隱蔽的坑語言包雖然裝進了系統(tǒng)Tesseract 卻未必會認它。這篇文章不聊算法只講把這個包從解壓到跑通、再到能用腳本批量輸出的完整落地路徑適合做自動化采集、檔案數(shù)字化和數(shù)據(jù)處理的一線工程人員照做。2. 拆包先看文件主程序、語言包和 tessdata 目錄各歸其位拿到 tesseract-ocr安裝包和中文語言包.rar第一件事不是急著雙擊安裝而是先解壓看清楚里面有什么。Tesseract 在 Windows 上不是單一文件它由主程序、訓練數(shù)據(jù)和運行庫三部分組成而中文語言包是否有效取決于它最終有沒有被放到 tessdata 目錄下。很多人裝完發(fā)現(xiàn)“中文用不了”就是因為跳過了這個目錄檢查步驟讓訓練數(shù)據(jù)放錯了位置。2.1 安裝包里到底有哪幾類文件各自管什么先把解壓后的文件分類看明白。通常這類安裝包內(nèi)會有以下幾類內(nèi)容雖然名字可能略有出入但角色是固定的Tesseract-OCR-setup-xxx.exe # 主程序安裝包Windows 下以 exe 形式存在 chi_sim.traineddata # 簡體中文語言數(shù)據(jù)必須放進 tessdata 目錄 chi_sim_vert.traineddata # 中文豎排語言數(shù)據(jù)處理豎版書刊時用 tessdata_fast/ # 快速識別版數(shù)據(jù)目錄識別速度優(yōu)先 tessdata_best/ # 高精度版數(shù)據(jù)目錄準確率優(yōu)先 readme.txt # 打包者寫的說明先看這個這里最容易混淆的是traineddata和安裝包的關(guān)系。主程序 exe 負責執(zhí)行識別而chi_sim.traineddata是一份訓練好的語言模型文件里面包含了漢字字形、字符集和語言規(guī)則。Tesseract 每次啟動時都按語言名去找對應的.traineddata文件找不到就報錯找到但版本不匹配就會亂碼這是后續(xù)排查的主線。如果你拿到的 rar 里只有主程序和chi_sim.traineddata沒有tessdata_fast之類的目錄也不用擔心那只是打包者做了精簡。老版本 Tesseract 只有一套 tessdata后來 4.0 之后才分出 fast 和 best 兩個系列工程上默認用 fast 就夠追求準確率才換 best。先確認包內(nèi)文件歸屬再進入安裝環(huán)節(jié)能省掉后面大量排查時間。2.2 安裝主程序時兩個必須盯住的選項語言數(shù)據(jù)目錄與 PATH執(zhí)行主程序安裝包時安裝向?qū)Ю镉袔讉€選項容易看漏。大多數(shù)流傳的安裝包是基于 Windows 版 Tesseract 打包的安裝界面是標準的向?qū)狡渲袃蓚€地方必須留意。第一是語言數(shù)據(jù)組件勾選。新版安裝器會提供一個語言多選列表列出幾十種語言默認你直接勾掉中文也未必裝得上因為中文訓練數(shù)據(jù)在官方安裝器里并不隨主程序分發(fā)。這正是你需要這個 rar 的原因語言包通常是單獨散裝的主程序裝完后手動補進 tessdata而不是靠安裝器勾選。你在安裝界面如果看到了Additional language data或多選語言列表看一眼有沒有簡體中文有就勾上沒有就記住之后要手動放語言包。第二是 PATH 環(huán)境變量。安裝到第三步時界面會有一個Add Tesseract to your system PATH的復選框強烈建議勾上。勾選后系統(tǒng)才能在任意命令行窗口直接調(diào)用tesseract命令如果沒勾命令行運行會提示“不是內(nèi)部或外部命令”雖然可以通過指定完整路徑使用但后續(xù)接入 Python 和做批處理時都會多一層額外配置屬于典型的不給自己留余地。裝完后目錄默認在C:\Program Files\Tesseract-OCR不建議改到帶空格的深層路徑之外的地方保持默認更省心。2.3 用 TESSDATA_PREFIX 把中文語言包指給 Tesseract主程序裝完語言包還只是躺在解壓目錄里的一個靜態(tài)文件接下來要把它放進 tessdata 目錄。常見做法是在文件管理器里直接打開C:\Program Files\Tesseract-OCR\tessdata把chi_sim.traineddata復制進去用命令行操作也一樣關(guān)鍵是目錄不能錯。# 假設(shè)主程序裝在默認路徑把簡體中文語言包復制進 tessdata 目錄 copy chi_sim.traineddata C:\Program Files\Tesseract-OCR\tessdata\chi_sim.traineddata # 如果 rar 里帶豎排版中文語言包一并復制 copy chi_sim_vert.traineddata C:\Program Files\Tesseract-OCR\tessdata\chi_sim_vert.traineddata # 設(shè)置 TESSDATA_PREFIX 環(huán)境變量指向 tessdata 的上一級目錄 setx TESSDATA_PREFIX C:\Program Files\Tesseract-OCR復制命令的邏輯是把語言數(shù)據(jù)文件放進 Tesseract 默認掃描的數(shù)據(jù)目錄這一步解決了“文件在但找不到”的問題。setx則是把數(shù)據(jù)根目錄寫進用戶環(huán)境變量注意這里寫的一定是tessdata的上一級目錄也就是 Tesseract 的安裝根目錄而不是tessdata本身。如果你把TESSDATA_PREFIX設(shè)成C:\Program Files\Tesseract-OCR\tessdataTesseract 反而會在該目錄下繼續(xù)找下一層 tessdata導致加載失敗這個細節(jié)我從見過不少人在這翻車。命令都執(zhí)行完之后需要新開一個命令行窗口讓環(huán)境變量生效然后連續(xù)跑兩條驗證命令# 查看版本確認主程序正常 tesseract --version # 列出當前可用的語言包看 chi_sim 是否出現(xiàn) tesseract --list-langs這里的--list-langs是判斷中文語言包是否被系統(tǒng)認到的關(guān)鍵命令。輸出列表里有chi_sim說明語言包已經(jīng)進入了 Tesseract 的搜索路徑可以進入下一步實際識別測試輸出里沒有chi_sim則說明 tessdata 目錄或者TESSDATA_PREFIX配置有問題回頭檢查上一節(jié)的三條命令是否都執(zhí)行成功。3. tesseract 命令行跑通中文識別最小命令與輸出參數(shù)很多文章在講 Tesseract 時一上來就貼一堆命令參數(shù)但沒講清每個參數(shù)解決什么問題。這一章從一條最小命令開始把中文識別跑通再逐步解釋輸出格式和語言參數(shù)的選擇邏輯。一旦你理解了命令的組成部分后續(xù)調(diào)參只是改參數(shù)值的問題而不是翻文檔大海撈針。3.1 第一條識別命令tesseract 圖片路徑 stdout -l chi_sim準備工作做完后找一張帶中文的截圖或掃描件執(zhí)行下面這條命令# 用簡體中文語言包識別一張圖片結(jié)果直接打印到控制臺 tesseract sample.png stdout -l chi_sim --psm 3 --oem 3拆開看各部分作用sample.png是輸入圖片路徑stdout表示把識別結(jié)果輸出到標準輸出也就是直接在命令行窗口顯示不改動任何文件-l chi_sim指定使用簡體中文語言包這是本場景最核心的參數(shù)漏掉它 Tesseract 會用默認的英語識別中文圖片輸出一堆意義不明的字母--psm 3表示使用自動頁面分割適用于大多數(shù)普通頁面--oem 3表示使用默認的 OCR 引擎模式兼容性最好。參數(shù)順序上stdout位置如果換成resultTesseract 就會在當前目錄生成一個result.txt文件。對于第一次測試建議用stdout直接看輸出避免生成一堆臨時文件還要手動清理。如果圖片清晰、文字方向正常命令執(zhí)行后控制臺會打印出識別到的中文文本如果出現(xiàn)報錯按第 4 章的排查流程處理。3.2 輸出格式與四種 PSM 模式怎么選識別結(jié)果不只是能顯示在控制臺Tesseract 支持把結(jié)果寫成多種格式文件工程上最常用的是txt、tsv和pdf三種。其中tsv格式對后續(xù)做質(zhì)量篩選特別有價值因為它逐行輸出了每個單詞的位置框和置信度分數(shù)# 識別結(jié)果為帶置信度和坐標的 TSV 文件方便程序化處理 tesseract scan.png result -l chi_sim --psm 6 tsv # 識別結(jié)果直接輸出為可檢索的 PDF 文件 tesseract scan.png result -l chi_sim --psm 3 pdf第一條命令會生成result.tsv內(nèi)容包含每行文本的字符內(nèi)容、包圍盒坐標和置信度。置信度是識別引擎對當前結(jié)果的把握程度通常 0 到 100分數(shù)越高越可信用它做自動化過濾可以在后續(xù)省下大量人工校對。第二條命令會把識別文字層嵌入 PDF適合做掃描件歸檔。--psm參數(shù)決定 Tesseract 如何把頁面分成文本塊這參數(shù)選錯會直接影響識別質(zhì)量。實際工作中我一般按場景這么選普通文檔截圖用--psm 3它自動檢測頁面布局單個文字塊的正方形截圖用--psm 6它假設(shè)整張圖是一段統(tǒng)一文本識別率很穩(wěn)單行長文字用--psm 7復雜排版、表格、多欄頁面用--psm 3通常最好--psm 6在這種場景下反而會因為忽略布局而把不同欄目混在一起。3.3 中英文混合識別時同一張圖的兩個語言參數(shù)中文和英文混排的圖片在實際業(yè)務中占比很大比如帶英文姓名的合同掃描件、雙語產(chǎn)品標簽、包含快遞單號的物流回單。Tesseract 的語言參數(shù)支持同時加載多個語言包用加號連接即可# 同時使用簡體中文和英語兩個語言包識別雙語圖片 tesseract bilingual.png stdout -l chi_simeng --psm 3這條命令的關(guān)鍵在于語言標識的寫法chi_sim是簡體中文eng是英語中間用加號連接表示兩個語言包同時參與識別。執(zhí)行時 Tesseract 會分別加載兩種語言模型在同一張圖里自動區(qū)分中英字符比單用chi_sim識別英文姓名準確很多。chi_sim只處理中文遇到英文時可能出現(xiàn)字母漏識別或識別成中文形近字反過來單用eng處理中文則完全不可用因為英語模型里沒有中文字符集。所以混合內(nèi)容圖片一定要顯式寫成-l chi_simeng不要偷懶省掉eng。另外如果你的圖片是豎排中文要把語言標識換成chi_sim_vert這個特殊語言包在官方的通用訓練數(shù)據(jù)里沒有需要單獨下載這也是很多 rar 包會附帶chi_sim_vert.traineddata的原因。4. 中文識別失敗排查常見報錯、亂碼與識別率邊界這一章是真正讓新手和熟手拉開差距的地方。Tesseract 的安裝和單命令識別都簡單但真實場景里你會遇到各種玄學問題明明語言包復制過去了卻還是報錯明明識別命令沒報錯但結(jié)果是亂碼甚至安裝過程中直接被系統(tǒng)攔截。下面按最常見的幾類問題逐個列出每一條都按現(xiàn)象、原因、解決三步說明。4.1 報錯“Failed loading language chi_sim”且--list-langs看不到中文現(xiàn)象是執(zhí)行識別命令時控制臺提示無法加載chi_sim語言用tesseract --list-langs查不到中文包。這類問題基本可以鎖定在語言包沒有被主程序找到。原因分兩種一是.traineddata文件根本沒有放進tessdata目錄只是躺在解壓文件夾里二是文件放進去了但是TESSDATA_PREFIX環(huán)境變量沒設(shè)置或指向錯誤導致 Tesseract 在錯誤路徑找數(shù)據(jù)文件。解決上先確認文件位置C:\Program Files\Tesseract-OCR\tessdata\下必須有chi_sim.traineddata再確認環(huán)境變量TESSDATA_PREFIX應該指向C:\Program Files\Tesseract-OCR而不是tessdata子目錄本身。改完環(huán)境變量后重新打開命令行窗口再跑--list-langs把這兩步做完這類報錯的 90% 都能解決。剩下 10% 是安裝包用了精簡版注冊表這種情況我一般建議直接重啟一次系統(tǒng)讓環(huán)境變量徹底刷進進程環(huán)境。4.2 語言列表里有 chi_sim識別結(jié)果卻全是亂碼--list-langs能列出chi_sim說明語言包已經(jīng)被識別到了但實際輸出是一堆符號或英文字母這是另一個高頻坑。原因通常是語言包與主程序版本不匹配。Tesseract 4.x 和 5.x 需要對應版本系列的.traineddata如果你從網(wǎng)上某個教程里下載了老舊的 Tesseract 3.x 語言包放進新版程序里加載時不會報錯明顯錯誤但識別結(jié)果會完全不可讀。另外有些流傳的語言包本身是損壞的半文件下載后解壓沒有校驗過程也會出現(xiàn)加載成功但識別亂碼。解決方法是確認主程序和語言包同源。你拿到的這個tesseract-ocr安裝包和中文語言包.rar如果是打包者自己整理的一體包通常主程序和語言包版本是配套的亂碼概率較低如果是你在兩個渠道分別下載后拼湊的那就要檢查tesseract --version輸出的版本號去對應渠道重新下載匹配的chi_sim.traineddata。4.3 安裝到最后一步閃退提示缺少 vcruntime140.dll在部分精簡版 Windows 或未安裝過開發(fā)環(huán)境的機器上運行 Tesseract 安裝包時會彈出缺少vcruntime140.dll的錯誤安裝進程直接回滾。這是因為 Tesseract 的 Windows 發(fā)行版依賴微軟 Visual C 運行庫運行庫里包含了這個 DLL而目標機器未預裝它。不要直接去下載一個vcruntime140.dll然后復制到 system32 目錄這種做法經(jīng)常引發(fā)系統(tǒng)級 DLL 沖突屬于給自己找更大的麻煩。正確做法是安裝微軟官方 Visual C Redistributable 運行庫包也就是常說的 VC 運行庫裝完后再重新執(zhí)行 Tesseract 主程序安裝包。安裝運行庫時注意選擇與系統(tǒng)位數(shù)一致的版本64 位系統(tǒng)就裝 x64 版。這個坑本身不難解決但很多人會卡在“文件明明是完整 rar 包為什么安裝會失敗”的經(jīng)驗判斷上忽略運行庫依賴值得單獨列出來提示一句。4.4 中文字體小圖識別出來是空的預處理是后悔藥現(xiàn)象很常見識別命令正常執(zhí)行控制臺沒有報錯但輸出的文本為空或者只有零星幾個字。這類問題通常不是 Tesseract 壞了而是輸入圖片質(zhì)量不達標。Tesseract 對低分辨率、低對比度的圖片特別敏感中文筆畫結(jié)構(gòu)復雜一個 12 號文字的截圖如果分辨率只有幾十乘幾十像素識別引擎無法從中提取特征就會輸出空白。原因還包括掃描件光照不均、背景帶網(wǎng)格線、文字顏色與背景色接近等。解決思路是先做圖片預處理而不是反復調(diào)整 Tesseract 參數(shù)。常用做法是把圖片在畫圖工具或自動化腳本中放大兩倍轉(zhuǎn)成灰度圖再做二值化處理。第 5 章有完整的預處理代碼這一章先說結(jié)論遇到空輸出時先用看圖工具把原圖放大兩倍另存為 PNG 再識別一次這操作能解決一大半問題。如果放大后依然空輸出再檢查圖片是否反色比如白字紅底這類圖需要先取反色再送識別引擎否則中文模型基本認不出來。4.5 繁體與豎排文本用錯語言標識方向直接翻車處理繁體或豎排書刊時如果仍然用默認的-l chi_sim識別結(jié)果會慘不忍睹。chi_sim模型針對簡體橫排文本訓練對繁體字率敏感而豎排文字如果缺少豎排方向信息Tesseract 會在字符排序上出錯輸出成一團亂序的字符串。解決上繁體文檔使用-l chi_tra注意這是繁體語言包需要額外下載chi_tra.traineddata。豎排文本使用-l chi_sim_vert它內(nèi)置了豎排文字的行序和列序邏輯配合--psm 5或--psm 6使用效果比較穩(wěn)定。如果你的 rar 包里沒帶這兩個文件后續(xù)用到時去官方語言數(shù)據(jù)渠道補齊即可這部分屬于按需擴展不影響主程序運行。5. pytesseract 接入與批處理讓安裝包變成能交付的 OCR 工具命令行跑通只是第一步實際工程里很少有人一條一條敲命令去識別圖片。通常的做法是把 Tesseract 嵌入 Python 腳本用 pytesseract 這個封裝庫調(diào)用本地安裝的 tesseract.exe再配合 Pillow 做圖像預處理最后批量產(chǎn)出文本或結(jié)構(gòu)化數(shù)據(jù)。這樣處理幾十張、幾百張圖片時才具備可交付性。5.1 pytesseract 連接本地 tesseract-ocr 的最短三行先安裝 Python 依賴再寫調(diào)用代碼。pytesseract 本身不含識別引擎它只是把命令行工具的輸入輸出封裝成 Python 接口真正干活的還是你剛裝好的 Tesseract 主程序。# 安裝 pytesseract 和 pillow 圖像處理庫 pip install pytesseract pillow安裝完寫一個最小調(diào)用示例# ocr_min.py import pytesseract from PIL import Image # 指向本地 tesseract.exe 的完整路徑Windows 上必須顯式指定 pytesseract.pytesseract.tesseract_cmd rC:\Program Files\Tesseract-OCR\tesseract.exe # 打開圖片并調(diào)用中文識別 text pytesseract.image_to_string(Image.open(sample.png), langchi_sim, config--psm 3 --oem 3) print(text)這段代碼里最關(guān)鍵的一行是tesseract_cmd的路徑指定。即使你安裝時勾選了 PATH在 Python 進程內(nèi)仍有可能因為環(huán)境變量刷新不及時而找不到命令顯式寫絕對路徑可以徹底消滅這種不確定性。image_to_string的第一個參數(shù)可以直接傳 PIL 圖像對象避免每次識別前都要先寫臨時文件。返回值是識別出的字符串后續(xù)可以直接寫入數(shù)據(jù)庫或文件。5.2 用 Pillow 先放大二值化再喂給識別引擎第 4 章提到圖片預處理是識別率的后悔藥這里給出具體代碼。Pillow 能做灰度化、縮放、二值化和反色操作哪個操作需要啟用取決于原圖問題# preprocess.py from PIL import Image def preprocess_for_ocr(path: str) - Image.Image: img Image.open(path).convert(L) # 轉(zhuǎn)灰度圖 scale 2 if img.width 800 else 1 # 小圖放大大圖不動 img img.resize((img.width * scale, img.height * scale), Image.LANCZOS) # 高質(zhì)量縮放 # 二值化小于閾值的像素變黑其余變白 threshold 140 img img.point(lambda x: 0 if x threshold else 255) return img這段預處理代碼對低分辨率截圖效果最明顯。convert(L)把彩色圖轉(zhuǎn)成灰度消除顏色干擾中文識別主要依賴字形灰度特征彩色信息反而會增大計算量??s放用LANCZOS重采樣比普通NEAREST更能保留筆畫邊界。二值化的threshold是調(diào)節(jié)點背景偏白時取 140 到 160 之間比較穩(wěn)若掃描件偏暗可以降到 100 到 120以保留深色筆畫。如果遇到白字紅底這類反色圖在灰度化之后加一行img img.point(lambda x: 255 - x)把深淺對調(diào)后再送識別。5.3 批量跑一個文件夾腳本與置信度篩選批量識別是自動化落地的基本形態(tài)下面給一個可直接改路徑投入使用的骨架腳本。這個腳本遍歷指定目錄下的所有圖片逐張調(diào)用 Tesseract 識別把結(jié)果寫入同名文本文件同時記錄置信度# batch_ocr.py import os import csv import pytesseract from PIL import Image pytesseract.pytesseract.tesseract_cmd rC:\Program Files\Tesseract-OCR\tesseract.exe src_dir rD:\scans out_dir rD:\ocr_output os.makedirs(out_dir, exist_okTrue) images [f for f in os.listdir(src_dir) if f.lower().endswith((.png, .jpg, .jpeg, .bmp))] with open(os.path.join(out_dir, confidences.csv), w, newline, encodingutf-8-sig) as cf: writer csv.writer(cf) writer.writerow([filename, text, min_conf]) for name in images: img Image.open(os.path.join(src_dir, name)) result pytesseract.image_to_string( img, langchi_sim, config--psm 6 --oem 3) out_name os.path.splitext(name)[0] .txt with open(os.path.join(out_dir, out_name), w, encodingutf-8) as f: f.write(result) data pytesseract.image_to_data( img, langchi_sim, output_typepytesseract.Output.DICT, config--psm 6 --oem 3) confs [int(c) for c in data[conf] if c ! -1] min_conf min(confs) if confs else 0 writer.writerow([name, result[:50], min_conf]) print(fdone: {name})腳本有兩個值得注意的設(shè)計。一是image_to_data返回的conf列表里-1表示該區(qū)域為空白或非文本過濾掉后再取最小值得到整張圖最不可靠的置信度。二是 CSV 編碼指定為utf-8-sig這樣用 Excel 直接打開 CSV 時中文文件名和文本內(nèi)容不會亂碼這個細節(jié)容易忽略。--psm 6在這里假設(shè)每個文件都是一段獨立文本塊如果你的圖片是復雜的多區(qū)塊頁面改成--psm 3更穩(wěn)妥。跑完一批圖后CSV 里min_conf低于 40 的文件就是需要人工復核的黑匣子直接批量丟進重新識別流程而不是全部手工處理。6. 用置信度過濾給中文識別結(jié)果兜底識別完成不等于數(shù)據(jù)可用Tesseract 輸出的文本必須經(jīng)過一層置信度質(zhì)檢否則 OCR 的錯誤字符會悄悄混進業(yè)務數(shù)據(jù)清洗成本比識別成本高得多。最后的進階操作是不只看最終文本而是用 TSV 格式拿到每個字符的位置和置信度再設(shè)定一個過濾閾值把不自信的區(qū)域單獨抽出來處理。# quality_check.py import pytesseract from PIL import Image pytesseract.pytesseract.tesseract_cmd rC:\Program Files\Tesseract-OCR\tesseract.exe img Image.open(sample.png) data pytesseract.image_to_data( img, langchi_sim, output_typepytesseract.Output.DICT, config--psm 6 --oem 3) lines {} for i, conf in enumerate(data[conf]): if conf -1: continue conf int(conf) if conf 60: # 只有置信度 60 的文本才被認為可靠 key data[line_num][i] lines.setdefault(key, []).append(data[text][i]) for line_num in sorted(lines): print(f[{line_num}] {.join(lines[line_num])})閾值 60 是一個可調(diào)的起始值。合同級文檔我通常提到 80全信度高但會漏掉一部分傾斜字日志和流水賬號類數(shù)據(jù)用 60保證盡可能多的文本被提取。把每個整行的文本拼接時要注意字符之間有空格text字段里包含了 Tesseract 輸出詞間空格行拼接時可先做一次strip()再合并。我現(xiàn)在的習慣是 OCR 輸出和原始圖片永遠一起歸檔不留只有文本沒有圖的歷史包袱省得幾個月后數(shù)據(jù)對不上時沒有后悔藥。哪種圖片用什么參數(shù)組合也要順手記在一個參數(shù)表里換人接手時不用重新踩一遍坑。希望幫到你。本文還有配套的精品資源點擊獲取