Как убрать мерцающий шум монитора с изображения? - PullRequest
2 голосов
/ 23 января 2020

Я пытаюсь убрать шум с фото на экране монитора. Вот исходное фото:

enter image description here

Я пробовал несколько разных подходов, поэтому текущая версия моего кода выглядит следующим образом:

clr_img = cv2.imread("D:\Noisy.jpg", 1) 
gray_img = cv2.cvtColor(clr_img, cv2.COLOR_BGR2GRAY) 
gray_img = cv2.fastNlMeansDenoising(gray_img, h=11)
binary_image = cv2.adaptiveThreshold(gray_img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 91, 12)

Вот результат:

enter image description here

Можно ли избавиться от такого шума?

1 Ответ

2 голосов
/ 24 января 2020

Вам необходимо применить операцию сглаживания перед адаптивным порогом. Простое размытие должно помочь уменьшить шум. Любой из них должен работать: простое среднее размытие (cv2.blur), гауссово размытие (cv2.GaussianBlur) или медианное размытие (cv2.medianBlur). Вот результат использования (7,7) размытия по Гауссу:

enter image description here

import cv2

image = cv2.imread('1.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (7,7), 0)
thresh = cv2.adaptiveThreshold(blur,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,51,9)
result = 255 - thresh

cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.waitKey()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...