python - 如何在Python中将前景文本与嘈杂的背景分开?

标签 python image opencv image-processing filtering

我正在尝试从此图像中提取文本

this image .

我尝试使用 OpenCV 调整对比度和亮度、平滑(例如 GaussianBlur、medianblur)和阈值技术(例如 Otsu),但仍然有很多剩余噪声。

还有什么我可以尝试的吗?

最佳答案

您可以尝试组合使用高斯模糊、阈值处理和形态学操作来隔离文本。这是一个管道

模糊 -> 阈值 -> 打开 -> 膨胀 -> 按位与

enter image description here enter image description here enter image description here enter image description here enter image description here

import cv2

image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (7,7), 0)
thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,2))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=3)

# Repair text
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7,7))
dilate = cv2.dilate(opening, kernel, iterations=2)

# Bitwise-and with input image
result = cv2.bitwise_and(image,image,mask=dilate)
result[dilate==0] = (255,255,255)

cv2.imshow('thresh', thresh)
cv2.imshow('opening', opening)
cv2.imshow('dilate', dilate)
cv2.imshow('result', result)
cv2.waitKey()

关于python - 如何在Python中将前景文本与嘈杂的背景分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58739151/

相关文章:

python:给定一个 BytesIO 缓冲区,在 html 中生成 img 标签?

c# - exe中的图像,wpf,c#.Net,vs2008

OpenCV 2.4.3 FaceRecognizer 无法识别我的脸

python - 防止两个Python程序同时写入同一个文件

image - Octave ,如何保存绘图?

python - 如何检测 table 的水平线和垂直线并消除噪音?

python - 如何使用 OpenCV2.0 和 Python2.6 调整图像大小

python - Pyqt 在 QlistWidget 中为部分文本着色

python - 从元组列表创建树

Python rstrip() 工作起来很奇怪