用matlab频域低通滤波,频域高通滤波处理彩色图像的程序
来源:网络收集 点击: 时间:2024-02-12程序如下:
clear all;
clc;
I=imread(up4-Amp.png);
OutImg=I;
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
R=medfilt2(R,);
G=medfilt2(G,);
B=medfilt2(B,);
I1=cat(3,R,G,B); % 对彩色图像R,G,B三个通道分别进行3×3模板的中值滤波 cat函数用于连接两个矩阵或数组
R=filter2(fspecial(average,3),R)/255;
G=filter2(fspecial(average,3),G)/255;
B=filter2(fspecial(average,3),B)/255;
I2= cat(3,R,G,B); %对彩色图像R,G,B三个通道分别进行3×3模板的均值滤波
figure,imshow(I);
title(原图)
figure,
imshow(I1);
title(中值滤波)
figure,imshow(I2);
title(均值滤波)
注意事项
1、在频域滤波,由于是点乘,所以滤波模板矩阵和图像矩阵必须尺寸一样。
2、因为尺寸一样,它们的原点必须要对齐。
3、因在进行离散傅里叶变换后,在频域点乘,相当于在时域卷积,但是这个时候实际上是对时域周期矩阵进行卷积。直接在时域卷积,matlab默认是在边界补0。
4、Matlab freqz2()这个函数可以自动得到一个指定尺寸的,对应于时域的频域模板。
5、图像经过傅里叶变换后,它的原点在左上角。而模板经过freqz2后,原点在中心,所以只要平移其中的一个就好了。
6、在对原图像进行傅里叶变换之前,按照一定规则补0就好了。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_30192.html