2

我需要从一些图像中读取文本,图像清晰且噪音非常低。所以我最初的想法是获取文本应该很容易。(我知道的很少)

我测试了一些python库但没有成功(pytesser),他们可能会得到 10% 的正确率。我求助于谷歌的 tesseract-occ,但它仍然远远不够好。

这是一个例子: 在此处输入图像描述

结果如下:

nemnamons

Ill
w_on

lhggerllo
' 59
' as

\M_P2ma\

vuu uu

Cafllode omer
Mom | Dyna
Mom | Dyna

lnggerllo



2vMnne= Tr2rspnn| Factory (Hexmy;

lalgeflll Uxzlconflg
w_o«
w_o«

cammem

我究竟做错了什么?还是 OCR 识别真的这么糟糕?

4

1 回答 1

1

您需要对图像进行预处理,例如去除噪点,以获得更好的结果。稍后,您可以使用诸如pytesseract, 之类的库来从图像中获取文本:

def get_string(img_path):
    img = cv2.imread(img_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # Remove some noise
    kernel = np.ones((1, 1), np.uint8)
    img = cv2.dilate(img, kernel, iterations=1)
    img = cv2.erode(img, kernel, iterations=1)
    cv2.imwrite("removed_noise.png", img)    

    # Recognize text with tesseract for python
    result = pytesseract.image_to_string(Image.open("removed_noise.png"))

    return result
于 2017-08-04T08:18:36.740 回答