Python pytesseract【OCR引擎庫】 簡介

想全面了解DeepSeek的看過來 【包郵】DeepSeek全攻略 人人需要的AI通識課 零基礎掌握DeepSeek的實用操作手冊指南【限量作者親筆簽名版售完即止】

玩轉DeepSeek這本就夠了 【自營包郵】DeepSeek實戰指南 deepseek從入門到精通實用操作指南現代科技科普讀物AI普及知識讀物人工智能使用教程中小學讀物京東超級618

Python初學者的入門教程 動手學深度學習 PyTorch版 李沐和阿斯頓·張等強強聯合之作!機器學習、深度學習、AI領域重磅教程! deepseek機器學習(異步圖書出品)

程序員要最先成為AI的主人 AI高手速成 DeepSeek讓你工作變輕松 deepseek從入門到精通實戰指南人工智能 異步圖書出品


pytesseract 是一個 Python 封裝庫,用于調用 Google 的 Tesseract-OCR 引擎,實現光學字符識別(OCR)功能。它允許開發者直接從 Python 中提取圖像中的文字內容,支持多種語言(包括中文)。


核心特點

  1. 跨平臺支持
    Windows/macOS/Linux 均可使用。
  2. 多語言識別
    支持 100+ 種語言(需安裝對應語言包)。
  3. 簡單易用
    只需幾行代碼即可完成 OCR 識別。
  4. 與 PIL/Pillow/OpenCV 兼容
    可直接處理常見的圖像對象。

安裝步驟

1. 安裝 Tesseract OCR 引擎
  • Windows
    下載安裝程序:UB-Mannheim/tesseract
  • macOS
    brew install tesseract
    
  • Linux (Debian/Ubuntu)
    sudo apt install tesseract-ocr
    
2. 安裝語言包(以中文為例)
# Linux
sudo apt install tesseract-ocr-chi-sim  # 簡體中文
sudo apt install tesseract-ocr-chi-tra  # 繁體中文# macOS/Windows 需在安裝時勾選或手動下載語言包
3. 安裝 Python 庫
pip install pytesseract pillow

基礎用法示例

示例 1:識別圖像中的文字
from PIL import Image
import pytesseract# 設置 Tesseract 路徑(Windows 可能需要)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 打開圖像并識別
image = Image.open("text_image.png")
text = pytesseract.image_to_string(image, lang='chi_sim')  # 使用簡體中文print("識別結果:")
print(text)
示例 2:識別 OpenCV 處理的圖像
import cv2
import pytesseract# 讀取圖像 + 灰度化
img = cv2.imread("text_image.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# OCR 識別
text = pytesseract.image_to_string(gray, lang='eng+chi_sim')  # 中英文混合
print(text)

高級功能

1. 獲取文字位置與置信度
from PIL import Image
import pytesseractimage = Image.open("text_image.png")
data = pytesseract.image_to_data(image, lang='eng', output_type=pytesseract.Output.DICT)# 打印每個檢測到的單詞信息
for i in range(len(data['text'])):if data['text'][i].strip():print(f"文本: {data['text'][i]}")print(f"位置: (x={data['left'][i]}, y={data['top'][i]})")print(f"置信度: {data['conf'][i]}\n")
2. 識別多語言混合文本
text = pytesseract.image_to_string(image, lang='eng+chi_sim+jpn')  # 中英日混合
3. 調整 OCR 參數
# 配置參數示例
config = r'--oem 3 --psm 6 -c preserve_interword_spaces=1'
text = pytesseract.image_to_string(image, config=config)
  • oem: OCR 引擎模式(0~3,推薦 3)
  • psm: 頁面分割模式(常用值):
    • 3 = 自動分頁(默認)
    • 6 = 假設為統一文本塊
    • 7 = 單行文本

圖像預處理技巧

提高識別準確率的常用預處理方法:

import cv2img = cv2.imread("text_image.png")# 1. 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 2. 二值化
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)# 3. 降噪
denoised = cv2.fastNlMeansDenoising(thresh, h=10)# 4. 識別處理后的圖像
text = pytesseract.image_to_string(denoised, lang='chi_sim')

常見問題解決

  1. 路徑錯誤(Windows):
    取消注釋并設置 tesseract_cmd 路徑:

    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    
  2. 語言包缺失
    下載語言包(.traineddata 文件)放入 tessdata 目錄(通常在 Tesseract 安裝路徑下)。

  3. 識別率低

    • 對圖像進行預處理(灰度化/二值化/降噪)
    • 調整 psmoem 參數
    • 使用更高分辨率的清晰圖像

應用場景

  • 文檔掃描件文字提取
  • 驗證碼識別(簡單類型)
  • 車牌識別
  • 圖像中的多語言翻譯
  • 自動化數據錄入

通過結合 OpenCV 進行圖像預處理,pytesseract 能顯著提升復雜場景下的 OCR 準確率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88124.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88124.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88124.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu安裝postman教程并中文漢化詳細教程

一、下載postman安裝包 通過網盤分享的文件:Postman-linux-x64-8.7.0.tar.gz 鏈接: https://pan.baidu.com/s/10WYeguDJlK85cKJ6ptX01w?pwd=xqkh 提取碼: xqkh 二、解壓到/opt目錄 tar -zxvf Postman-linux-x64-8.7.0.tar.gz如果子用戶沒有/opt權限,可以給子用戶賦予/opt的…

《壘球知識科普》壘球世界紀錄·壘球1號位

奧運壘球冠軍記錄 歷屆冠軍榜 1996亞特蘭大奧運會 冠軍:美國隊 ? 首屆奧運壘球賽,美國主場3戰全勝奪冠! 1996 Atlanta Olympics Champion: USA ? Dominated all 3 games in first Olympic softball event 2000悉尼奧運會 冠軍&#…

通信網絡編程3.0——JAVA

主要添加了私聊功能 1服務器類定義與成員變量 public class ChatServer {int port 6666;// 定義服務器端口號為 6666ServerSocket ss;// 定義一個 ServerSocket 對象用于監聽客戶端連接//List<Socket> clientSockets new ArrayList<>();// 定義一個列表用于存儲…

RediSearch `FT.CREATE` 完全參數指南 HASH/JSON 雙寫實戰

1、索引與 Schema 速概 索引 (index) —— 倒排、前綴、向量、Geo … 元數據集合Schema —— 索引藍圖&#xff1a;定義字段、類型、權重、排序及存儲策略FT.CREATE —— 創建索引命令&#xff0c;分「索引級參數」和「字段級參數」兩層 2 、FT.CREATE 語法模板 FT.CREATE &…

QT學習教程(三十七)

系統繁忙時的響應&#xff08;Staying Responsive During Intensive Processing&#xff09; 當我們調用QApplication::exec()時&#xff0c;Qt 就開始了事件循環。啟動時&#xff0c;Qt 發出顯示和繪制事件&#xff0c;把控件顯示出來。然后&#xff0c;事件循環就開始了&…

hot100 -- 17.技巧

1.多數元素 問題&#xff1a; 給定一個大小為 n 的數組 nums &#xff0c;返回其中的多數元素。多數元素是指在數組中出現次數 大于 ? n/2 ? 的元素。 你可以假設數組是非空的&#xff0c;并且給定的數組總是存在多數元素。 方法1&#xff1a; 哈希表 實時判斷&#xff…

算法第39天| 打家劫舍 1、2、3

198. 打家劫舍 題目 思路與解法 class Solution { public:int rob(vector<int>& nums) {// dp數組含義&#xff1a;// 考慮下標i&#xff08;包括i&#xff09;以內的房屋&#xff0c;最多可以偷竊的金額為dp[i]if (nums.size() 0) return 0;if (nums.size() 1)…

車載CAN總線數據采集與故障診斷裝置設計與實現

車載CAN總線數據采集與故障診斷裝置設計與實現 鏈接:1.6W字 [下載]摘要1.1 研究背景1.2 研究意義(1)技術提升:推動CAN總線診斷的智能化與實時性(2)經濟價值:降低診斷成本與維修時間(3)安全與標準化:促進車聯網數據安全體系建設社會效益1.3 國內外研究現狀1.3.1 國外研…

布瑞琳BRANEW:高端洗護領航者,鑄就品質生活新典范

近日,布瑞琳BRANEW,這一中國高端洗護行業的領軍品牌,再次憑借其卓越的服務品質、創新的經營模式以及對行業標準的深度推動,成為市場矚目的焦點。作為北京2022年冬奧會和殘奧會的商業服務保障單位,布瑞琳不僅展現了其無與倫比的服務能力,更在國際舞臺上彰顯了品牌的非凡影響力。…

AWS服務器擴充硬盤

1、在控制臺上將需要擴充的硬盤增加空間 將硬盤大小由原來的50G升級到200G 2、登錄所掛載的服務器 1&#xff09;查看硬盤分區情況 adminip-172-31-121-13:~$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 200G 0 disk ├─nv…

嵌入式自學第四十二天

PWM:脈沖寬度調制&#xff0c;調節電壓為方波。關鍵參數&#xff1a;占空比、周期。 UART&#xff1a;通用異步收發器。 參與通信的設備&#xff1a;主機host 通信的本質&#xff1a;數據的傳遞。 通信方式&#xff1a; 單工&#xff1a;只能單向傳遞 半雙工&#xff1a;雙向…

人工智能如何重塑教育體系:個性化學習的新時代

&#x1f4dd;個人主頁&#x1f339;&#xff1a;慌ZHANG-CSDN博客 &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; 一、引言&#xff1a;教育的“智能革命”正在發生 教育作為人類社會發展的基石&#xff0c;始終緊隨技術進步不斷演化。從印刷術帶來知識…

【云原生】基礎篇

?一、云原生 1.1 本質與核心技術體系? 云原生&#xff08;Cloud Native&#xff09;是以容器化、微服務、聲明式API和動態編排為核心的架構范式&#xff0c;旨在最大化利用云的彈性、可觀測性和自動化能力。其技術棧分層如下&#xff1a; ?1.2、云原生核心技術棧? ?層級…

實時反欺詐:基于 Spring Boot 與 Flink 構建信用卡風控系統

在金融科技飛速發展的今天&#xff0c;信用卡欺詐手段日益高明和快速。傳統的基于批處理的事后分析模式已難以應對實時性要求極高的欺詐場景。本文將詳細介紹如何利用 Spring Boot 和 Apache Flink 這對強大的組合&#xff0c;構建一個高性能、可擴展的實時信用卡反欺詐系統。 …

通過apache共享文件

有時候&#xff0c;vmware虛擬機的vmware tools總是安裝失敗&#xff0c;這樣就不能在虛擬機和主機之間共享文件。此時可以利用apache通過文件上傳和下載共享文件。 通過下面的php文件&#xff0c;虛擬機作為客戶端訪問此php&#xff0c;可以在虛擬機和主機之間共享文件。當然…

Maven生命周期,測試

測試 Junit入門 單元測試 單元測試&#xff1a;就是針對最小的功能單元(方法)&#xff0c;編寫測試代碼對其正確性進行測試。 JUnit&#xff1a;最流行的Java測試框架之一&#xff0c;提供了一些功能&#xff0c;方便程序進行單元測試&#xff08;第三方公司提供&#xff09…

H5調試工具vconsole和Eruda對比

VConsole與Eruda對比分析 VConsole和Eruda是兩款主流的移動端JavaScript調試工具&#xff0c;它們在功能定位、使用場景和技術實現上有諸多差異。以下從多個維度進行對比&#xff0c;幫助你選擇更適合的工具&#xff1a; 一、核心功能對比 功能維度VConsoleEruda基礎日志輸出…

Java經典編程題

題目 1&#xff1a;斐波那契數列 題目要求&#xff1a;編寫一個方法&#xff0c;輸入正整數n&#xff0c;輸出斐波那契數列的第n項。斐波那契數列的定義是&#xff1a;F(0)0&#xff0c;F(1)1, 當n > 1時&#xff0c;F(n)F(n - 1)F(n - 2)。 答案&#xff1a; public cla…

BUG調試案例五十:“低級”設計BUG案例篇(持續更新中.........)

引言 回頭看這些年硬件路,總有一些“低級Bug”一次次地在給我上課。它們不是復雜的架構設計,不是玄妙的信號完整性問題,而是最基礎、最應該避免、卻又最容易忽略的小細節。 每一次Bug的背后,都是教訓,有的甚至讓整個項目差點“翻車”。寫下這篇文章記錄那些“看似簡單實…

DeepSeek中的提示庫及其用法示例

《DEEPSEEK原生應用與智能體開發實踐 圖書》【摘要 書評 試讀】- 京東圖書 為了深入探索DeepSeek提示詞樣例的豐富內涵&#xff0c;充分挖掘其背后潛藏的無限可能&#xff0c;同時致力于為用戶打造更為卓越、便捷且高效的使用體驗&#xff0c;DeepSeek官網的API文檔匠心獨運地…