ssa*_*932 6 python opencv tesseract image image-processing
我正在为 tesseract 的 ocr 处理图像。我需要帮助来消除背景噪音而不损坏文本。
输入图像示例

我尝试过中值模糊和删除小的连接组件(如何在不损坏文本的情况下删除点/噪音?)。连接组件的问题是噪声可能有更大的连接,如果不删除减号,我就无法摆脱它。有什么建议如何继续前进吗?
由于您的图像只是黑/白,因此您可以进行简单的阈值处理和形态转换来过滤图像。如果您的图像输入不是黑白的,您可以使用诸如cv2.medianBlur()或 之类的模糊技术cv2.GaussianBlur()来平滑图像作为预处理步骤。然后,您可以使用各种内核大小执行形态学操作或使用cv2.getStructuringElement(). 7x7通常,与较小的内核 (或9x9) 相比,较大的内核大小(3x3或) 将消除更多噪声,但也会删除所需的细节5x5。根据您想要消除多少噪音,同时平衡要保留的细节量,需要进行权衡。看看这个彩色验证码的答案。
临界点
变形关闭
反转 Tesseract 的图像
结果
-63164
import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image = cv2.imread('1.png',0)
thresh = cv2.threshold(image, 150, 255, cv2.THRESH_BINARY_INV)[1]
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel)
result = 255 - opening
cv2.imshow('thresh', thresh)
cv2.imshow('opening', opening)
cv2.imshow('result', result)
print(pytesseract.image_to_string(result))
cv2.waitKey()
Run Code Online (Sandbox Code Playgroud)