簡體   English   中英

使用 pytesseract 進行 OCR

[英]OCR with pytesseract

我正在嘗試使用 OCR 來讀取給定圖片中的數字。

這是我的原圖: https://prnt.sc/u42wn3

我試圖改變這兩個選項的圖片:

我正在運行下一個代碼:

img = Image.open(r"C:\Users\peleg\Desktop\screenshots\hp_black.png")  # read the black on white picture
new_img = img.resize((80 * 2, 15 * 3)) # resizing the picture
data = pytesseract.image_to_string(new_img,config='-c tessedit_char_whitelist=0123456789/') # exporting text from image
print(data)

我嘗試了多種尺寸,但仍然沒有收到任何東西。

您可能想檢查您是否有合適的 OEM 和 PSM,您可以在此處了解更多信息(--psm 和 --oem 部分)

您可以指定pytesseract 文檔中指定的 oem 或 psm 模式,如下所示:

添加任何附加選項的示例。

custom_oem_psm_config = r'--oem 3 --psm 6'
pytesseract.image_to_string(image, config=custom_oem_psm_config)

您的第二張圖片應該可以工作。 但我@achraf 可能是對的:你應該提供一個 psm。 即使是最基本的 psm (6) 似乎也適用於這個圖像。 您的縮放功能已關閉。 原件是 237x86。 你將它縮放到 160x45。 我建議將寬度和高度參數保留為 0 並提供 fx 和 fy 比例因子

import cv2
import pytesseract

img = cv2.imread('original.png', cv2.IMREAD_GRAYSCALE)  

thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)[1]
thresh = cv2.resize(thresh, (0,0), fx=2, fy=2)  # scale image 2X

detected_text = pytesseract.image_to_string(thresh)
print(detected_text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM