сгладить края пиксельного двоичного изображения кода Python - PullRequest
2 голосов
/ 01 июля 2019

Я использую pytesseract для преобразования изображений в текст, однако точность не равна 100%, поскольку изображения изменяются при изменении размера.Применение размытия по Гауссу сгладит края, но размытие изображения сделает невозможным распознавание текста при распознавании текста.Какой тип фильтра сгладит края, не слишком размывая изображение.Изображение выглядит примерно так

Изображение

image

1 Ответ

1 голос
/ 02 июля 2019

enter image description here

Вы можете создать медианное размытие изображения, а затем попробовать серию морфологических преобразований , в частности 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()
...