【Matlab】我有一个2048*2448的.mat类型的变量矩阵,恢复成面形后有很多多余的噪声部分,想要去除这些噪声,让图片边缘光滑,我想把矩阵中,如果一行中0的个数占整行80%(也有可能是其他的比例)以上的话,就让这一行都为0,把矩阵处理完再进行中值滤波,并拿原图减去中值滤波的结果,得到最后高频的部分,这个程序要怎么写呢?
load('mod.mat');
mod(mod==0)=nan;
a=medfilt2(mod);
figure,imagesc(a);
b=mod-a;
figure,imagesc(b);
这只是直接中值滤波并拿原图减去滤波结果的代码,会得到图中的结果,但是边缘和中心还是存在误差。
200
400
600
800
1000
1200
1400
1600
1800
2000
500 1000 1500 2000
图片是没有修改矩阵时得到的结果,边缘和中心存在很多的噪声。