我正在使用pytesseract将图像转换为文本,但是精度不是100%,因为图像在调整大小时会发生像素化。应用高斯模糊会平滑边缘,但会使图像模糊,从而使OCR无法检测文本。 什么样的滤镜可以使边缘平滑而不会使图像模糊太多。图片看起来像这样
图片
答案 0 :(得分:1)
您可以对图像进行中值模糊处理,然后尝试一系列morphological transformations,特别是cv2.MORPH_CLOSE
和3x3
内核,在这里似乎效果很好。您可以使用内核的大小和迭代次数来获得所需的结果
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()