我正在尝试消除监视器屏幕照片中的噪音。这是源照片:
我尝试了一些不同的方法,所以我的代码的当前版本如下:
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](https://i.sstatic.net/Fj0Yp.jpg)
有没有可能摆脱这种噪音?
最佳答案
您需要在自适应阈值之前应用平滑操作。简单的模糊应该有助于减少噪音。其中任何一个都应该有效:简单平均模糊( 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()
关于python - 如何从图像中去除显示器闪烁的噪音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59879485/