繁体   English   中英

如何使用 OpenCV 从图像中删除文本中的空格和点

[英]How to remove Empty Spaces and Dots in Text from Image with OpenCV

我正在使用 OpenCV 和 Python 处理图像。 我需要去除图像中的点/噪点。 背景和文本都有空的点/线。 这是一个例子: 带有此代码的示例图像我可以删除背景

import cv2
import numpy as np

img = cv2.imread('image.png', 0)
_, blackAndWhite = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)

nlabels, labels, stats, centroids = cv2.connectedComponentsWithStats(blackAndWhite, None,None, None, 8, cv2.CV_32S)
sizes = stats[1:, -1] #get CC_STAT_AREA component
img2 = np.zeros((labels.shape), np.uint8)

for i in range(0, nlabels - 1):
    if sizes[i] >= 50:   #filter small dotted regions
        img2[labels == i + 1] = 255

res = cv2.bitwise_not(img2)

cv2.imwrite('res.png', res)

结果是:结果

我怎样才能填补文本中的空白? 或者我怎样才能使这个图像对 OCR tesseract 可读?

我不确定这是否可行,但您可以尝试扩张+侵蚀和/或侵蚀+扩张变换。

看这张图片: 图像转换:打开和关闭

This can be implemented with OpenCV: https://docs.opencv.org/4.5.5/d9/d61/tutorial_py_morphological_ops.html

此致

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM