如何消除图像中的显示器闪烁噪声?

Sag*_*gRU 4 python opencv image image-processing python-3.x

我正在尝试消除监视器屏幕照片中的噪音。这是源照片:

在此输入图像描述

我尝试了一些不同的方法,所以我的代码的当前版本如下:

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)
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

有可能消除这种噪音吗?

nat*_*ncy 6

您需要在自适应阈值处理之前应用平滑操作。简单的模糊应该有助于减少噪音。其中任何一个都应该有效:简单平均模糊 ( cv2.blur)、高斯模糊 ( cv2.GaussianBlur) 或中值模糊 ( cv2.medianBlur)。这是使用高斯模糊的结果(7,7)

在此输入图像描述

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()
Run Code Online (Sandbox Code Playgroud)