降噪滤波器(Matlab中的图像处理)

时间:2013-10-12 06:12:02

标签: matlab image-processing noise-reduction

此代码仅估算图像中对象的边界以供进一步处理

f = imread(ImageFile);
i = rgb2gray(f);
threshold = graythresh(i);
bw = im2bw(i, threshold);
imshow(bw)
se = strel('disk',3);
bw = imclose(bw,se);
bw = bwareaopen(bw, 30);

[B,L] = bwboundaries(bw,'noholes');

imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end

适用于this imageCorrect result

但是,当我使用this one进行尝试时,我得到incorrect results

(我尝试了更多图片,但无法发布更多链接)

结果甚至没有接近完美。我尝试使用维纳滤镜,它平滑了图像的左侧部分,但右侧部分仍然有很多噪音。中位数过滤器会使情况变得更糟。

减少这种噪音的最有效方法是什么?此外,我正在寻找一个通用的解决方案,以便当我使用具有相似背景的图像时它仍然有效。

0 个答案:

没有答案