我正在尝试从此图像中提取文本
.
我尝试使用 OpenCV 调整对比度和亮度、平滑(例如 GaussianBlur、medianblur)和阈值技术(例如 Otsu),但仍然有很多剩余噪声。
还有什么我可以尝试的吗?
最佳答案
您可以尝试组合使用高斯模糊、阈值处理和形态学操作来隔离文本。这是一个管道
模糊 ->
阈值 ->
打开 ->
膨胀 ->
按位与
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/