用matlab频域低通滤波,频域高通滤波处理彩色图像的程序

用matlab频域低通滤波,频域高通滤波处理彩色图像的程序,第1张

程序如下:

clearall;

clc;

I=imread('up4-Amppng');

OutImg=I;

R=I(:,:,1);

G=I(:,:,2);

B=I(:,:,3);

R=medfilt2(R,[3,3]);

G=medfilt2(G,[3,3]);

B=medfilt2(B,[3,3]);

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、Matlabfreqz2()这个函数可以自动得到一个指定尺寸的,对应于时域的频域模板。

5、图像经过傅里叶变换后,它的原点在左上角。而模板经过freqz2后,原点在中心,所以只要平移其中的一个就好了。

6、在对原图像进行傅里叶变换之前,按照一定规则补0就好了。

频域图像分析

1熟悉MATLAB软件的使用。

2掌握频域图像分析的原理及数学运算。

1自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域方法以及傅里叶变换和小波变换的频率滤波方法对该含噪图像进行去噪处理,并基于PSNR值和视觉效果这两个指标来比较这四种滤波方法对两种不同噪声的去噪能力。

2编写一个程序,要求实现下列算法:首先将阁像分割为8x8的子图像,对每个予图像进行FFT对每个了图像中的64个系数。按照每个系数的方差来排序后,舍去小的变换系数,只保留16个系数,实现4: I的图像压缩。

3给定一幅行和列都为2的整数次幕图像,用Haar小波基函数对其进行二维小波变换,试着将最低尺度近似分量置零再反变换,结果是什么如果把垂直方向的细节分量置零,反变换后结果又是什么呢试解释一下原因。

4基于小波变换对图像进行不同压缩比的压缩。在同压缩比情况下,对于基于小波变换和基于傅里叶变换的压缩结果,比较=二者保留原图像能里百分比情况。

Win10 64位电脑

MATLAB R2017a

1傅里叶变换

从纯粹的数学意义上看,傅里叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数。

傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数傅里叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,通常用一个二维矩阵表示空间上各点,记为z=f(x,y)。又因空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就必须由梯度来表示,这样我们才能通过观察图像得知物体在三维空间中的对应关系。

2小波变换

小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节带噪声信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换回复检测信号。

小波变换在去除噪声时可提取并保存对视觉起主要作用的边缘信息,而传统的基于傅里叶变换去除噪声的方法在去除噪声和边沿保持上存在着矛盾,因为傅里叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可知,与傅里叶变换去除噪声的方法相比较,小波变换法去除噪声具有明显的性能优势。

3PSNR算法

peak的中文意思是顶点。而ratio的意思是比率或比列的。整个意思就是到达噪音比率的顶点信号,psnr一般是用于最大值信号和背景噪音之间的一个工程项目。通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序能否令人满意。它是原图像与被处理图像之间的均方误差相对于(2 n-1) 2的对数值(信号最大值的平方,n是每个采样值的比特数),它的单位是dB。

SNRP算法

haar基函数进行小波变换

七、实验结果与分析

图 1原图

1加入周期噪声、高斯噪声

2对添加了高斯噪声和周期噪声的图像进行高斯滤波

PSNR值

1对高斯噪声进行高斯滤波后 230287

2对周期噪声进行高斯滤波后 234837

2中值滤波

PSNR值:

1对高斯噪声进行中值滤波 239931

2对周期噪声进行中值滤波 243134

3傅里叶变换滤波

PSNR值:

1对添加了高斯噪声的图像进行傅里叶变换滤波 204922

2对添加了周期噪声的图像进行傅里叶变换滤波 189736

4小波变换滤波

PSNR值:

1对添加了高斯噪声的图像进行小波变换滤波 234712

2对添加了周期噪声的图像进行小波变换滤波 244525

分析:

对于高斯噪声,高斯滤波和傅里叶变换滤波声的除噪效果较好,中值滤波效果较差,小波变换滤波的处理效果也比较好

对于周期噪声,中值滤波和高斯滤波效果不是很好,傅里叶变换变换滤波对噪声的去处效果比较好,对于原图像损坏不大,小波变换对原图的损坏较大,但是可以看出噪声也去除的比较好。

5图像压缩(4:1压缩) 原图-左 压缩后-右

分析:

图像压缩算法就是先将一副图像分成很多小块,然后分别对这些小块进行变换,这里采用的是傅里叶变换,然后过滤掉冗余的像素点,然后再利用反变换得到压缩后的图像即可。

小波变换

1定义

小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节带噪声信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换回复检测信号。

2优点

小波变换在去除噪声时可提取并保存对视觉起主要作用的边缘信息,而传统的基于傅里叶变换去除噪声的方法在去除噪声和边沿保持上存在着矛盾,因为傅里叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可知,与傅里叶变换去除噪声的方法相比较,小波变换法去除噪声具有明显的性能优势。

Haar基函数进行小波变换

图 2原图

图 3 haar变换

图 4 haar反变换后

图 5 最低分量近似置零

图 6 垂直分量置零

小波变换进行图像压缩与傅里叶变换压缩对比

1压缩比 1:2(左-小波压缩 右-傅里叶压缩)

2压缩比 1:4(左-小波压缩 右-傅里叶压缩)

通过这次实验,学到了很多。特别是在傅里叶变换和小波变换等方面,开始的时候连傅里叶变换的基础基础也不懂,后来在csdn上看了一篇讲解傅里叶变换的文章,豁然开朗,傅里叶变换居然可以将一个时域信号转化到频域,而且自己还对与i有了更加深刻的理解。虽然傅里叶变换可以把信号从时域转换到频域,但是频域与时域的对应关系却无法一一对应,所以诞生了小波变换。小波变换的特别之处就是可以把一个时域上的信息转换为时域-频域一一对应,这对应特殊信号的提取是有很好的效果,在一定程度上比傅里叶变换更厉害。但是在傅里叶、小波等基础概念知识方面,自己还是涉猎的比较少,原理的论证公式太复杂了。

1、灰度等级直方图处理:使加工后的图像在某一灰度范围内有更好的对比度。

2、干扰抑制:通过低通滤波、多图像平均、施行某类空间域算子等处理,抑制叠加在图像上的随机性干扰。

3、边缘锐化:通过高通滤波、差分运算或某种变换,使图形的轮廓线增强。

4、伪彩色处理:将黑白图像转换为彩色图像,从而使人们易于分析和检测图像包含的信息。由于对图像质量的要求越来越高,单一的增强处理往往难以达到令人满意的效果。因此,在图像的实际增强处理中,常常是几种方法组合运用,各取所长以达到最佳的增强效果。

I=imread('cameramantif');

I=double(I);

fftI=fft(I(:));

RR=real(fftI); %取傅立叶变换的实部

II=imag(fftI); %取傅立叶变换的虚部

A=sqrt(RR^2+II^2);%计算频谱幅值

figure,plot(A)

fft2=fft2(I); %二维离散傅立叶变换

sfft2=fftshift(fft2); %直流分量移到频谱中心

RRR=real(sfft2); %取傅立叶变换的实部

III=imag(sfft2); %取傅立叶变换的虚部

A=sqrt(RRR^2+III^2);%计算频谱幅值

A=(A-min(min(A)))/(max(max(A))-min(min(A)))225;%归一化

figure; %设定窗口

imshow(A); %显示原图像的频谱

以上就是关于用matlab频域低通滤波,频域高通滤波处理彩色图像的程序全部的内容,包括:用matlab频域低通滤波,频域高通滤波处理彩色图像的程序、MATLAB--数字图像处理 频域图像分析、与空域图象增强中平滑和镜化相对应的频域方法是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10083591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存