我得到一张具有“斑点噪声”的图像,我的任务是分别删除每一层,然后重新组合干净的图像。我不允许只使用 med2flt() 中值滤波器。我已经分离了红色、绿色和蓝色 3 个不同的层,但我不知道如何对它们应用中值滤波器。我该怎么做?
问问题
13251 次
1 回答
4
使用nlfilter
如果你被允许使用nlfilter
,你可以试试flt = @(x) median(x(:))
它的过滤功能。如果您键入 ,您将找到有关此的更多信息doc nlfilter
。
自己写
练习可能是关于如何自己实现过滤操作。首先,您可能希望为过滤后的图像分配内存,因为imf = zeros(size(im, 1) - 2, size(im, 2) - 2);
该图像有点小,因为处理边缘的一种方法是丢弃它们。然后,考虑两个for
循环x
和y
图像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 回答