matlab符号计算输出超出范围内,MATLAB做自适应中值处理,for循环那部分超出了矩阵的范围,跪求高手如何更改!...

im=imread('C:\Documents and Settings\Administrator\桌面\1.png')

if isrgb(im)

im=rgb2gray(im)

end

%figure,imshow(im);

im_noise=imnoise(im,'gauss',0.004);

im_noise=imnoise(im_noise,'salt & pepper',0.05);

im_old=im;

figure,imshow(im_noise);

%自适应中值滤波

im_mean_varl=mean2(im_var(1,2:m-1,2:n-1));

im_mean_var2=mean2(im_var(2,3:m-2,3:n-2));

im_mean_var3=mean2(im_var(3,4:m-3,4:n-3));

im_mean_var4=mean2(im_var(4,5:m-4,5:n-4));

T=im_mean_var1;

%im_N=ones(m,n);

im_new=im_noise;

im_mean_var=zeros(m,n);

im_N_var=zeros(m,n);

im_max_var=zeros(m,n);

for i=5:m-5

for j=5:n-5

im_min_avg(i,j)=min([im_avg(1,i,j),im_avg(2,i,j),im_avg(3,i,j),im_avg(4,i,j)]);

for N=1:4

if im_avg(N,i,j)==im_min_avg(i,j);

% im_N(i,j)=N;

im_mean_var(i,j)=mean2(im_var(N,i-N:i+n,j-N:j+n));

im_N_var(i,j)=im_var(N,i,j);

im_max_var(i,j)=max(im_var(N,

smile.gif);

im_new(i,j)=im_avg(N,i,j);

end

end

end

end

q=im_mean_var./(im_N_var+1);

dat=im_N_var./(im_mean_var+im_max_var+1);

im_winner=uint8(double(im_new)+(1-q+dat).*(double(im_noise-im_new)));

figure,imshow(im_winner);

title('维纳滤波图片');

%择优算法

im_end=min(im_med,im_winner);

% im_logic=im_med>im_winner;

% im_end=im_winner(im_logic);

%边缘择优

im_edge_winner=edge(im_winner,'canny');

% im_edge=im_noise.*im_canny;

for i=3:m-2

for j=3:n-2

if im_edge_winner(i,j)

im_mask=im_noise(i-2:i+2,j-2:j+2);

w=im_mask(im_edge-winner(i-2:i+2,j-2:j+2));

im_end(i,j)=median(w);

end

end

end

%像素择优

im_logic_med=double(abs(im_noise-im_med))./double(im_med)<0.001;

im_logic_winner=double(abs(im_noise-im_winner))./double(im_winner)<0.001;

im_logic_end=im_logic_med & im_logic_winner;

for i=1:m

for j=1:n

if im_logic_end(i,j)

im_end(i,j)=im_noise(i,j);

end

end

end

%im_end=im_noise.*uint8(im_logic_end)+im_end.*uint8(~im_logic_end);

figure,imshow(im_end);

title('最终图片');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值