为什么 scikit 中值滤波器会产生空白输出图像?
Why does the scikit median filter produce a blank output image?
我正在尝试使用 Scikit Image
的 median
过滤器对以下图片进行降噪。
这是一张尺寸为 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 评论)
我正在尝试使用 Scikit Image
的 median
过滤器对以下图片进行降噪。
这是一张尺寸为 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 评论)