代码之家  ›  专栏  ›  技术社区  ›  Sau001

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

  •  0
  • Sau001  · 技术社区  · 4 年前

    我正在尝试使用 median 过滤 Scikit Image .

    enter image description here

    这是一张尺寸为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")
    
    

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

    有什么建议吗?

    非常感谢。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Lior Cohen    4 年前

    因为你的图像几乎是全白色的,所以如此大的磁盘的中间区域也是白色的。

    举个极端的例子,想象一个磁盘有51%的白像素和49%的黑像素->中间带将为白色。在你的情况下,看起来至少95% 白人主导。

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