簡體   English   中英

改進從圖像中讀取文本

[英]Improve text reading from image

我正在嘗試從電影中讀取電影演職員表。 為了制作 MVP,我從一張圖片開始: 在此處輸入圖像描述

我使用這段代碼:

print(pytesseract.image_to_string(cv2.imread('frames/frame_144889.jpg')))

我嘗試了不同的 psm,但它返回了一個難看的文本。

one Swimmer
Decay
Nurse
Aer
a
ig
coy
Coy
cor
ag
Or
Rr
Sa
Ae
Red
cod
Reng
OED Ty
Ryan Stunt Double
UST
er ey a er
Pm
JESSICA NAPIER
ALEX MALONE
Ey
DAMIEN STROUTHOS
JESSE ROWLES
DARIUS WILLIAMS
beamed
Aya
GEORGE HOUVARDAS
Sih
ata ARS Vara
BES liv4
MIKE DUNCAN
Pe
OV TN Ia
Ale Tate
SUV (aa: ae
SU aa
AIDEN GILLETT
MARK DUNCAN.

我嘗試使用其他分辨率更高且效果更好的圖片,但我能夠啟用非高清電影。

我可以做些什么來提高讀數的精度?

問候昆汀

僅遵循此指南來提高 Tesseract 的准確性,我經常取得良好的效果: Tesseract - 提高 output 的質量

重要的事情是:

  • 使用白色作為背景,使用黑色作為字符字體顏色。
  • Select 所需的 tesseractpsm 模式。 在這種情況下,使用 psm 模式 6 將圖像視為單個統一的文本塊。
  • 使用 tessedit_char_whitelist 配置僅指定您要搜索的字符。 在這種情況下,英文字母的所有次要和主要字符。

這是代碼:

import cv2
import numpy as np
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
img = cv2.imread('a.jpg')
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
(_, blackWhiteImage) = cv2.threshold(grayImage, 127, 255, cv2.THRESH_BINARY_INV)
blackWhiteImage = cv2.copyMakeBorder(src=blackWhiteImage, top=100, bottom=100, left=50, right=50, borderType=cv2.BORDER_CONSTANT, value=(255,255,255))
data = pytesseract.image_to_data(blackWhiteImage, config="-c tessedit_char_whitelist= ABCDEFGHIJKLMNOabcdefghijklmnopqrstuvwxyz --psm 6")
originalImage = cv2.cvtColor(blackWhiteImage, cv2.COLOR_GRAY2BGR)

text = []
for z, a in enumerate(data.splitlines()):
    if z != 0:
        a = a.split()
        if len(a) == 12:
            x, y = int(a[6]), int(a[7])
            w, h = int(a[8]), int(a[9])
            cv2.rectangle(originalImage, (x, y), (x + w, y + h), (0, 255, 0), 1)
            cv2.putText(originalImage, a[11], (x, y - 2), cv2.FONT_HERSHEY_DUPLEX, 0.5, (0, 0, 255), 1)
            text.append(a[11]);

print("Text result: \n", text)
cv2.imshow('Image result', originalImage)
cv2.waitKey(0)

以及具有預期結果的圖像:

在此處輸入圖像描述

暫無
暫無

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

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