声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1579|回复: 4

[图像处理] 滤波结果为何漆黑一片

[复制链接]
发表于 2007-6-13 12:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我是菜鸟,为了毕业设计才不得不用MATLAB.请各位高手看一下,这是一个焦盐去糟的例子,是我模仿一个程序写的(例子是一个加正弦噪声的图象,但我不知道怎么加正弦噪声),但运行出来是漆黑一片
im=imread('shiyan1.gif');
im1=imnoise(im,'salt & pepper',0.02);
figure(1)
imshow(im1)
I=im1;
F=fft2(I);
Fshift=fftshift(F);
F_magnitude=abs(Fshift);
figure(2)
imshow(log( F_magnitude),[]);
r = 10; %低通的中心半径,自己观察
m=256;
n=256;
for i=1:m
for j=1:n
if (((i-m/2)^2+(j-n/2)^2) < r^2 )
mask(i,j) = 1;
else
mask(i,j) = 0;
end
end
end
>> im2_fft=log(F_magnitude).*mask;
>> im2=ifft(ifftshift(im2_fft));
figure(3)
>> imshow(im2);

[ 本帖最后由 eight 于 2007-6-13 16:01 编辑 ]
shiyan1.gif
回复
分享到:

使用道具 举报

发表于 2007-6-13 13:21 | 显示全部楼层
没说明你的目的和程序要完成什么功能,别人怎么帮你呢?
发表于 2007-6-13 13:29 | 显示全部楼层

回复 #2 花如月 的帖子

他人为加入噪点,然后进行低通滤波,看看消除噪点的效果。

不是搞图像处理的,我搞不定。不过有两点要修改:1.ifft要换成ifft2;2.最后一条代码为imshow(uint8(real(im2)));

[ 本帖最后由 w89986581 于 2007-6-13 13:42 编辑 ]
发表于 2007-6-13 14:21 | 显示全部楼层
呵呵,原来如此。看看这个是你想要的结果么?
im=imread('shiyan1.gif');
im=imadjust(im);
im1=imnoise(im,'salt & pepper',0.02);
F=fft2(double(im1));
Fshift=fftshift(F);
%F_magnitude=abs(Fshift);这句没必要的
figure(1)
imshow(log( F_magnitude),[]);
r = 30; %低通的中心半径,自己观察
m=256;n=256;
for i=1:m
  for j=1:n
     if (((i-m/2)^2+(j-n/2)^2) < r^2 )
         mask(i,j) = 1;
     else
         mask(i,j) = 0;
     end
   end
end
im2_fft=Fshift.*mask;
im2=ifft2(ifftshift(im2_fft));
figure(2)
subplot(131),imshow(im),title('原图');
subplot(132),imshow(im1),title('加噪图');
subplot(133),imshow(uint8(real(im2)));
title('低通滤波图');

补充一点:如果对最后的滤波图效果不满意,还可以考虑进行对比度调节

[ 本帖最后由 花如月 于 2007-6-13 14:41 编辑 ]

低通频域滤波

低通频域滤波

评分

1

查看全部评分

 楼主| 发表于 2007-6-13 14:44 | 显示全部楼层
谢谢帮助,这正是想得到的结果
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 01:44 , Processed in 0.073995 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表