【问题标题】:How to remove monitor flickering noise from an image?如何去除图像中的显示器闪烁噪声?
【发布时间】:2020-05-09 18:43:01
【问题描述】:

我正在尝试消除显示器屏幕照片中的噪点。这是源照片:

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

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)

结果如下:

有没有可能消除这种噪音?

【问题讨论】:

  • 那不是显示器闪烁,是显示器的点阵纹。

标签: python python-3.x image opencv image-processing


【解决方案1】:

您需要在自适应阈值处理之前应用平滑操作。一个简单的模糊应该有助于减少噪音。其中任何一个都应该起作用:简单平均模糊 (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()

【讨论】:

    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2023-04-05
    • 2021-08-16
    • 1970-01-01
    相关资源
    最近更新 更多