
窗函数设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2fp/fs;
wc=2fc/fs;
N=ceil((as-795)/(1436(wc-wp)/2))+1;
beta=01102(as-87);
window=Kaiser(N+1,beta);
b=fir1(N,wc,window);
freqz(b,1,512,fs);
结果:
高通滤波器:
fs=22000;
Wp=25000/fs;
Ws=24800/fs;
Ap=1;
As=100;
N=ceil(8pi/(Wp-Ws))+1;
N=N+mod(N+1,2)+1;
Wc=(Wp+Ws)/2/pi;
h=fir1(N,Wc,'high');
omega=linspace(0,pi,512);
freqz(h,1,omega);
结果:
带通滤波器:
fs=22000;
Wp1=21200/fs;
Wp2=23000/fs;
Wc1=21000/fs;
Wc2=23200/fs;
Ap=1;
As=100;
W1=(Wp1+Wc1)/2;
W2=(Wp2+Wc2)/2;
wdth=min((Wp1-Wc1),(Wc2-Wp2));
N=ceil(11pi/wdth)+1;
b = fir1(N,[W1 W2]);
freqz(b,1,512,fs)
结果:
双线性法设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2fp/fs;
wc=2fc/fs; %归一化截止频率
[n,wn]=ellipord(wp,wc,ap,as);%求数字滤波器的最小阶数和归一化截止频率
[b,a]=ellip(n,ap,as,wn);%求传递函数的分子分母系数
freqz(b,a,512,fs);
结果:
滤波:
d=filter(b,a,y);
图像处理工具箱中有求分割阈值的函数,用的Otus法,即类间方差最大。
I=imreade('01jpg')
div=graythresh(I);
div既为二值化的分割阈值
细化可以用用腐蚀 imerode(I,se)
频域图像分析
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有了更加深刻的理解。虽然傅里叶变换可以把信号从时域转换到频域,但是频域与时域的对应关系却无法一一对应,所以诞生了小波变换。小波变换的特别之处就是可以把一个时域上的信息转换为时域-频域一一对应,这对应特殊信号的提取是有很好的效果,在一定程度上比傅里叶变换更厉害。但是在傅里叶、小波等基础概念知识方面,自己还是涉猎的比较少,原理的论证公式太复杂了。
X=0; %清空X
map=0;
[X,map]=imread('lena256x256x8bmp'); %读取图像
p=imfinfo('lena256x256x8bmp'); %读取图像的属性
s=2^pBitDepth-1; %计算图像的最大深度,如8位图像为255
%-------------------------------------------------------------------------
%简化的图像增强算法:简化Pmn及T变换的算法为:
Y=0; %清空Y
A=0;%清空A
Y=double(X)/s; %计算P(m,n),相当于求G(x)
%模糊变换算法
for m=1:pHeight
for n=1:pWidth
if(Y(m,n)<05)
A(m,n)=2Y(m,n)^2;
else
A(m,n)=1-2(1-Y(m,n))^2;
end
end
end
B=0; %清空B
B=uint8(A(2^pBitDepth-1)); %相当于求逆G-1(x')
%%%区域减影增强算法
P=0; %清空P
d=000005;%%%%设定冗余度
k=2;%%%%设定修正参数
for m=1:pHeight
for n=1:pWidth
if(Y(m,n)-A(m,n)>d)
P(m,n)=Y(m,n)+k(Y(m,n)-A(m,n));
end
if(Y(m,n)-A(m,n)<(-d))
P(m,n)=Y(m,n)+(-k)(Y(m,n)-A(m,n));
else
P(m,n)=Y(m,n);
end
end
end
B=0; %清空B
B=uint8(P(2^pBitDepth-1)); %相当于求逆G-1(x')
%%%图像增强几种方法效果对比
I=imread('lena256x256x8bmp'); %读入图像
I=double(I); %变成双精度
K1=filter2(fspecial('average',5),I)/255; %进行滤波
K2=imsubtract(I,K1);
K2=immultiply(K2,05);
K3=imadd(I,K2);
K2=uint8(K2); %转成8位数据
K3=uint8(K3);
I=uint8(I);
figure
title('图像增强几种方法效果对比');
subplot(2,2,1);imshow(I);title('原始图像');
subplot(2,2,2);imshow(K1);title('低通滤波图像');
subplot(2,2,3);imshow(K3);title('线性反锐化掩膜图像');
subplot(2,2,4);imshow(B);title('区域减影增强图像');
以上就是关于MATLAB数字图像处理程序全部的内容,包括:MATLAB数字图像处理程序、matlab对指纹二值化及细化的问题、MATLAB--数字图像处理 频域图像分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)