为什么 scikit 中值滤波器会产生空白输出图像?

Why does the scikit median filter produce a blank output image?

我正在尝试使用 Scikit Imagemedian 过滤器对以下图片进行降噪。

这是一张尺寸为 250 X 100 像素的图片。像素为黑色或白色。

dtype=uint8
shape=(100,250)
max=255
min=0

这是Python脚本

import os
from skimage import io
from skimage.filters.rank import median
from skimage.morphology import disk


def median_filter(inputfilename):
    folder_script=os.path.dirname(__file__)
    absolute_filename=os.path.join(folder_script,"./in/",inputfilename)

    original= io.imread(absolute_filename, as_gray=True)
    
    median_filtered=median(original, disk(50))  #5, 10, 20,100

    filename_result="median-filter-output.png"
    file_result=os.path.join(folder_script,"./out/",filename_result)
    io.imsave(file_result,median_filtered)

median_filter(inputfilename="NoisySine.png")

生成的图像始终为空白(全白)。我确定我做错了什么 - 但不清楚在哪里。

有什么建议吗?

谢谢,

因为你的图像几乎是全白的,那么大的圆盘中位数也是白色的。

举个极端的例子,假设一个磁盘有 51% 的白色像素和 49% 的黑色像素 -> 中位数将为白色。在你的情况下看起来至少有 95% 白人统治。

顺便说一句,它是 as_grey 而不是 as_gray(更新:是这样的,但现在不是了,请参阅下面的@Juan 评论)