Удаление шумов высокой плотности из изображения с помощью opencv в Python - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь обнаружить цифры с цифрового счетчика.Проблема, с которой я сейчас сталкиваюсь, состоит в том, что на изображениях слышен шум, и даже после добавления множества фильтров я не могу удалить шумы, не искажая цифры.Это то, чего я достиг до сих пор:

img = cv2.imread(image_path)
img = cv2.resize(img  , (280 , 70))

gamma = 2.5

# apply gamma correction and show the images
gamma = gamma if gamma > 0 else 0.1
img = adjust_gamma(img, gamma=gamma)

img = applyClahe(img)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.GaussianBlur(img, (3, 3), 0)
dst = cv2.fastNlMeansDenoising(img,None,3,10,21)
thresh = cv2.adaptiveThreshold(dst,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv2.THRESH_BINARY,11,2)
kernel = np.ones((1,2), np.uint8)
thresh = cv2.erode(thresh, kernel, iterations=1)
thresh = cv2.fastNlMeansDenoising(thresh,None,30,15,30)
connectivity = 4 
thresh = cv2.medianBlur(thresh, 3)

1.jpg enter image description here

enter image description here enter image description here

Есть ли более агрессивный алгоритм, который может отфильтровать эти шумы?

1 Ответ

0 голосов
/ 24 февраля 2019

Попробуйте использовать niBlackThreshold.Я бегу этот пример с результатом: enter image description here

Неплохо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...