簡體   English   中英

使用 Tesseract 檢測圖像中的文本

[英]Detect text in image using Tesseract

我從下面有以下情況。 我嘗試了 OpenCV 中的不同濾鏡,例如:灰度、調整大小 3 倍、高斯模糊、侵蝕、反銳化蒙版,但沒有任何成功。 從 tesseract 開始,我使用了 PSM 6、7 和 8。

您建議如何預處理圖像以檢測正確的文本: H 25 FT

謝謝!

在此處輸入圖像描述

重要的事情是:

  • 使用白色作為背景,使用黑色作為字符字體顏色。
  • Select 所需的 tesseractpsm 模式。 在這種情況下,我使用 7 psm 模式將圖像視為單個文本行。
  • 嘗試使用 tessedit_char_whitelist 配置僅指定您要搜索的字符。 在這種情況下:H、2、5、F、T。

考慮到這一點,這是我的代碼:

import cv2
import numpy as np
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
originalImage = cv2.imread('c.jpg')
grayImage = cv2.cvtColor(originalImage, cv2.COLOR_BGR2GRAY)
(thresh, blackAndWhiteImageOriginal) = cv2.threshold(grayImage, 127, 255, cv2.THRESH_BINARY_INV)
blackAndWhiteImage = cv2.erode(blackAndWhiteImageOriginal, np.ones((5,5), np.uint8))

ocr_output_details = pytesseract.image_to_data(blackAndWhiteImage, output_type=pytesseract.Output.DICT, config="--psm 7 -c tessedit_char_whitelist=H25FThft")
rgbImage = cv2.cvtColor(blackAndWhiteImage,cv2.COLOR_GRAY2RGB)
for i in range(len(ocr_output_details['level'])):
    (x, y, w, h) = (ocr_output_details['left'][i], ocr_output_details['top'][i], ocr_output_details['width'][i], ocr_output_details['height'][i])
    cv2.rectangle(rgbImage, (x, y), (x + w, y + h), (0,0,255), 2)

print('Text: ', ocr_output_details['text'])
cv2.imshow('Boxes', rgbImage)

cv2.waitKey(0)
cv2.destroyAllWindows()

結果:結果圖像

您也可以嘗試使用 Tesseract 文檔改進結果。 Tesseract - 提高質量 output

暫無
暫無

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

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