我正在使用 pytesseract 将图像转换为文本,但准确度不是 100%,因为图像在调整大小时像素化。应用高斯模糊会使边缘变平滑,但会模糊图像,使 OCR 无法检测文本。 什么样的过滤器可以平滑边缘而不会使图像过于模糊。图片看起来像这样
图片
最佳答案
您可以中值模糊图像,然后尝试一系列 morphological transformations ,特别是带有 3x3
内核的 cv2.MORPH_CLOSE
似乎在这里运行良好。您可以使用内核大小和迭代次数来获得所需的结果
import cv2
image = cv2.imread('1.png')
blur = cv2.medianBlur(image, 7)
gray = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray,125, 255,cv2.THRESH_BINARY_INV)[1]
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
close = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel, iterations=2)
result = 255 - close
cv2.imshow('thresh', thresh)
cv2.imshow('close', close)
cv2.imshow('result', result)
cv2.imwrite('result.png', result)
cv2.waitKey()
关于python - 平滑像素化二值图像python代码的边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56838217/