OCR圖像識別
- 一、OCR是什么
- 二、Python中如何實現OCR
- 1.簡單應用
- 三、OCR的核心步驟
- 1.?圖像預處理?(提高識別準確率)
- 2.?文字識別
- 3.?輸出結果
- 四、OCR到的應用場景
- 五、注意事項
- 六、擴展學習
此貼用來更新在工作中遇到的一些圖片解析內容
一、OCR是什么
OCR(Optical Character Recognition,光學字符識別) 是?一種將圖片中的文字自動識別并轉換為可編輯文本的技術。比如:
- 把一張手寫筆記的照片 ?? 轉成Word文檔
- 把掃描的PDF文件 ?? 轉成可搜索的文本
二、Python中如何實現OCR
請見:基于Tesseract OCR的文本識別方法及代碼示例
1.簡單應用
from PIL import Image
import pytesseract# 設置Tesseract路徑(根據你的安裝位置修改)
pytesseract.pytesseract.tesseract_cmd = r'E:\developer_tools\Tesseract-OCR\tesseract.exe'# 打開圖片
image = Image.open("test.png")# 識別文字
text = pytesseract.image_to_string(image, lang='chi_sim+eng') # 中英文混合識別# 打印結果
print(text)
三、OCR的核心步驟
1.?圖像預處理?(提高識別準確率)
- 灰度化:將彩色圖轉為黑白
- 二值化:讓文字更清晰
- 去噪:去除背景干擾
import cv2
image = cv2.imread("test.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 轉為灰度
_, binary = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY) # 二值化
2.?文字識別
text = pytesseract.image_to_string(binary, lang='chi_sim')
3.?輸出結果
- 直接保存為文本文件
- 生成可搜索的PDF(如你問題中的代碼)
四、OCR到的應用場景
| 場景 | 說明 |
|---|---|
| 文檔數字化 | 掃描件/照片轉文本 |
| 車牌識別 | 停車場自動識別車牌 |
| 發票識別 | 自動提取發票金額、日期 |
| 手寫筆記識別 | 將手寫內容轉為電子版 |
五、注意事項
?1.圖像質量決定效果:模糊、傾斜、低對比度的圖片識別率低。
?2.多語言支持:Tesseract支持100+種語言,需額外下載語言包。
?3.復雜布局處理:表格、多列文本可能需要更復雜的處理。
六、擴展學習
- 其他OCR庫:
- easyocr:更適合中文場景
- paddleocr:百度開發的OCR工具(中文效果優秀)
- 深度學習OCR:
- 使用YOLO等模型實現更復雜的文本檢測和識別。