matlab:lena图像在空域和频域的均匀滤波

matlab:lena图像在空域和频域的均匀滤波文章目录前言一、空域滤波二、频域滤波三,matlab代码结果前言卷积:函数空间域的卷积的傅里叶变换是函数傅里叶变换的乘积。对应地,频率域的卷积与空间域的乘积存在对应关系。给定频率域滤波器,可对其进行傅里叶逆变换得到对应的空域滤波器;滤波在频域更为直观,但空域适合使用更小的滤波模板以提高滤波速度。因为相同尺寸下,频域滤波器效率高于空域滤波器,故空域滤波需要一个更小尺寸的模板近似得到需要的滤波结果。一、空域滤波将模板在图像中逐像素移动,将卷积核的每个元素分别和图像矩阵对应位置元素相乘并将结果累加,

大家好,又见面了,我是你们的朋友全栈君。


前言

卷积:函数空间域的卷积的傅里叶变换是函数傅里叶变换的乘积。对应地,频率域的卷积与空间域的乘积存在对应关系。


给定频率域滤波器,可对其进行傅里叶逆变换得到对应的空域滤波器;滤波在频域更为直观,但空域适合使用更小的滤波模板以提高滤波速度。因为相同尺寸下,频域滤波器效率高于空域滤波器,故空域滤波需要一个更小尺寸的模板近似得到需要的滤波结果。

一、空域滤波

将模板在图像中逐像素移动,将卷积核的每个元素分别和图像矩阵对应位置元素相乘并将结果累加,累加和作为

模板中心对应像素点的卷积结果。通俗的讲,卷积就是对整幅图像进行加权平均的过程,每一个像素点的值,都

由其本身和邻域内的其他像素值经过加权平均后得到。

二、频域滤波

频率域是由傅里叶变换和频率变量 (u,v)定义的空间,频域均匀滤波处理过程:先对图像进行傅里叶变换,转换至频率域,在频域使用滤波函数进行滤波,最后将结果反变换至空间域。即:
(1)计算原始图像f(x,y)的DFT,得到F(u,v)。
(2)创建均值滤波器,并使用fft2计算其DFT得到H(u,v)
(3)计算滤波器函数H(u,v)与F(u,v)的乘积G(u,v)。
(4)计算第(3)步计算结果的傅里叶反变换g(x,y)。
(5)取g(x,y)的实部作为最终滤波后的结果图像。
按照该步骤,在MATLAB中很容易编程实现频域滤波。滤波能否取得理想结果的关键取决于频域滤波函数H(u,v),常常称之为滤波器,或滤波器传递函数。因为它在滤波中抑制或滤除了频谱中某些频率的分量,而保留其他一些频率不受影响。


注意空域的滤波器x转变的频域时用的函数是fft2(x,m,n),m*n是需要处理的图片大小。

三,matlab代码

t=imread('E:\matlab DMP\lenaG.bmp');
[m,n,z]=size(t);

 

y1=0+10*randn(m,n);%二维高斯分布矩阵 0是均值 20是标准差
y2=0+20*randn(m,n);%二维高斯分布矩阵 0是均值 20是标准差
y1=uint8(y1);
y2=uint8(y2);
%加上噪声
t1=t+y1;
t2=t+y2;
figure('name','添加高斯噪声');;
subplot(2,2,1),imshow(t),title('原图');
subplot(2,2,3),imshow(t1),title('加入均值为0,标准差为10的高斯噪声后');
subplot(2,2,4),imshow(t2),title('加入均值为0,标准差为20的高斯噪声后');


 

K1=conv2(fspecial('average',5),t2 )/255;
K2=conv2(fspecial('average',10),t2 )/255 ;
K3=conv2(fspecial('average',20),t2 )/255;
 
figure('name','空域均值滤波');

subplot(2,2,1),imshow(t2),title('原图');
subplot(2,2,2),imshow(K1),title('均值滤波,sizes 5x5');
subplot(2,2,3),imshow(K2),title('均值滤波,sizes 10x10');
subplot(2,2,4),imshow(K3),title('均值滤波,sizes 20x20');


 
Fc = fft2(t2);

 

h1 = fspecial('average',5);
h2 = fspecial('average',10);
h3 = fspecial('average',20);
 

H1 = fft2(h1,512,512);
H2 = fft2(h2,512,512);
H3 = fft2(h3,512,512);

G1 = H1.*Fc;
G2 = H2.*Fc;
G3 = H3.*Fc;
 

g1 = ifft2(G1);
g1 = im2uint8(mat2gray(abs(g1)));
 
g2 = ifft2(G2);
g2 = im2uint8(mat2gray(abs(g2)));

g3 = ifft2(G3);
g3 = im2uint8(mat2gray(abs(g3)));

figure('name','频域均值滤波');
subplot(2,2,1),imshow(t2),title('高斯噪声');
subplot(2,2,2),imshow(g1),title('高斯过滤,size 5*5');
subplot(2,2,3),imshow(g2),title('高斯过滤,size 10*10');
subplot(2,2,4),imshow(g3),title('高斯过滤,size 20*20');
 


Kk1 = medfilt2(t2,[3,3]);
Kk2 = medfilt2(t2,[5,5]);
Kk3 = medfilt2(t2,[7,7]);
figure('name','频域中值滤波');
subplot(2,2,1),imshow(t2),title('高斯噪声');
subplot(2,2,2),imshow(Kk1),title('高斯过滤,size 3*3');
subplot(2,2,3),imshow(Kk2),title('高斯过滤,size 5*5');
subplot(2,2,4),imshow(Kk3),title('高斯过滤,size 7*7');
 

结果

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150972.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pandownload激活码_pandownload账号

    pandownload激活码_pandownload账号yunfile网盘是国内的一个免费网盘,很多网站博客都会使用yunfile网盘的外链。但是该网盘广告多,等待时间长,免费用户只能一次下载一个文件,而且不能用迅雷等下载软件来下载,只能用IE,Chrome,Firefox等浏览器下载,下载速度又极其缓慢。但是有时候我们又不得不在该网盘下载文件,这个时候有一个yunfile网盘会员账号就可以解决上面所说的问题了。有求yunfile会员账号的朋友…

    2025年9月25日
    8
  • python官网下载步骤-Python 下载及安装详细步骤

    python官网下载步骤-Python 下载及安装详细步骤安装python分三个步骤:*下载python*安装python*检查是否安装成功1、下载Python(2)选择下载的版本(3)点开Download后,找到下载文件Gzippedsourcetarball是Linux系统下载的版本XZcompressedsourcetarball是CentOS系统下载的版本注意Linux和CentOS自带python,一般不用再下载python。ma…

    2022年6月12日
    40
  • Redis总结集群方式之主从复制[通俗易懂]

    Redis总结集群方式之主从复制[通俗易懂]绪论最近由于小编颈椎病犯了,所以最近停更了文章,今天下午刚收到几千里地老父亲寄来的艾灸贴,晚上贴上之后,伴随着火辣辣的感觉开始创作现在这篇文章;若大家get到了东西,请爱心三连。废话不再多言,下面我们进入正题。主从复制同步策略全量同步时机:slave初始化阶段;机制:slave服务器需要将master服务器上的所有数据都复制一份。增量同步时机:slave初始化之后且正常工作;机制:master服务器每执行一次新的写操作命令同步到slave服务器上,从服务器接收并执行该写命令操作;.

    2022年8月13日
    3
  • iTunes下载的固件在哪里_applemobiledevice安装不了

    iTunes下载的固件在哪里_applemobiledevice安装不了Keyword:iphone,itouch,ipad激活成功教程软件;installous和icabmobile 问题描述:今天使用Installous更新了iCabMobile浏览器后,发现Downloads里面的东西全都不见了,用ifile查看var/mobile/Documents/Installous目录下也没有Downloads文件夹了,遵循weiphone上的

    2022年9月20日
    2
  • java学生宿舍管理系统,来了就点个赞再走呗,即将毕业的兄弟有福了

    java学生宿舍管理系统,来了就点个赞再走呗,即将毕业的兄弟有福了引言:上次写了一个学生成功管理系统,有个老铁说不会运行,我答应给他写一个项目,并且附上运行的文档,于是这几天就利用摸鱼时间、晚上休息时间、中午午休时间写了这个宿舍管理系统,从表的设计和代码的编写都是自己弄的,数据库用mysql,web容器用tomcat,开发工具用eclipse\myeclipse,java方面入口都是用servlet,数据库连接用c3p0,总之都是用到比较基础的东西来写的,简单易懂,对于正在做毕业设计和刚入门时间不长的兄弟们来说,应该是比较好的学习代码了,希望对大家有所帮助。一张

    2022年7月16日
    19
  • 什么是redis,redis能做什么,redis应用场景

    什么是redis,redis能做什么,redis应用场景

    2021年10月10日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号