0

我得到一张具有“斑点噪声”的图像,我的任务是分别删除每一层,然后重新组合干净的图像。我不允许只使用 med2flt() 中值滤波器。我已经分离了红色、绿色和蓝色 3 个不同的层,但我不知道如何对它们应用中值滤波器。我该怎么做?

4

1 回答 1

4

使用nlfilter

如果你被允许使用nlfilter,你可以试试flt = @(x) median(x(:))它的过滤功能。如果您键入 ,您将找到有关此的更多信息doc nlfilter

自己写

练习可能是关于如何自己实现过滤操作。首先,您可能希望为过滤后的图像分配内存,因为imf = zeros(size(im, 1) - 2, size(im, 2) - 2);该图像有点小,因为处理边缘的一种方法是丢弃它们。然后,考虑两个for循环xy图像im,如

for x = 1 : size(im, 2) - 2
    for y = 1 : size(im, 1) - 2
        roi = im(y : y + 2, x : x + 2);
        imf(y, x) = median(roi(:));
    end
end

roi保持 的局部 3x3 邻域im,并median(roi(:))允许您计算这 9 个强度值的中值。

于 2013-10-30T20:17:54.270 回答