这种a4格式怎么打印a3

图像处理(3)
(1)横条纹:0_N_Girl_horiz_lines.bmp
方法一:频域处理
实验图像为加入了横条纹的图片,首先应该分析图片的频谱,观察频谱分布,以确定去除横条纹的方法.
①读出原图并进行傅里叶变换,显示频谱图片
从频谱图分析可知,应该将中间大圆周围的小亮圆去除,达到去除横条纹的目的.考虑滤波器的类型,常用的典型滤波器有理想低通滤波器,巴特沃斯低通滤波器,高斯低通滤波器,当巴特沃斯滤波器阶数较小时,滤波结果接近于高斯低通滤波器, 当巴特沃斯滤波器阶数较大时,滤波结果接近于理想低通滤波器.故可先采用理想低通滤波器和高斯低通滤波器进行处理,观察处理结果.当然滤波半径选取也很重要,本题选用滤波半径d0=30.
②首先采用理想低通滤波器对频谱进行滤波,然后对滤波结果进行反傅里叶变换,观察滤波后结果。
& 从图可以看出,经过理想低通滤波器和高斯低通滤波器滤波后,原始频谱的小亮圆均已去除,但是从图1.4和图1.6可以看出,理想低通滤波之后图像的轮廓模糊,而高斯低通滤波之后图像中的横条纹还在,只是亮度变低了,那么考虑使用巴特沃斯滤波器进行滤波,既可以接近理想滤波也可以接近高斯滤波的滤波效果。当然此处应该选取接近理想低通滤波器的高阶次巴特沃斯滤波器。
③采用不同阶次的巴特沃斯滤波器进行滤波,此处选择阶次level=5和level=15.
阶次为15时图像轮廓模糊,阶次为5时滤波效果较好,且阶次为15时巴特沃斯滤波器滤波后频谱图1.9与理想低通滤波器滤波后频谱近似。接下来考虑取巴特沃斯滤波器阶次为4,比较阶次为4和为5的效果,确定最终滤波方法。
④采用阶次level=4的巴特沃斯滤波器进行滤波,选取的原因在于阶次为5的滤波器不一定达到最好效果了,而阶次低于4之后的阶次较小,滤波效果与高斯低通滤波器效果更相滤波阶次为4的时候的效果更好,故选取阶次为4的巴特沃斯低通滤波器进行滤波,来去除图像中的横条纹。比较图1.1和图1.12可以看出滤波后已完全去除横条纹,但是图像的清晰度会有一定程度降低。
方法二:空域处理
本图除了考虑在频域进行处理,还应该考虑空域的规律,读出图像信息可以发现,横条纹的灰度值较高,为255,故可直接考虑在空域处理,去除亮横条纹。
①&读取灰度信息,可以看出横条纹灰度值分布规律。
②去除灰度值为255的像素,用邻近点像素值代替,即最近邻插值。
频率滤波降低了图像的清晰度,但是空域处理保持了目标图像的细节信息,效果较好。
& &对于频域滤波,对比分析滤波效果可知,对于横条纹的滤除,采用高阶巴特沃斯低通滤波器可取得较好滤波效果,而理想低通滤波器虽然可以去除横条纹,但是会造成一定的波浪条纹,而高斯低通滤波器的效果却不佳。且对比发现,虽然高阶巴特沃斯低通滤波器与理想低通滤波器效果接近,但是阶次越高时越会出现理想低通滤波器的波浪条纹缺点,故阶次不宜过高。但是对比频域滤波和空域滤波发现,在这种规律灰度值的横条纹噪声,直接在灰度值上进行处理并进行插值会取得较好效果,且比频域处理更好,图像的清晰度和细节保持都达到很好效果。
(2)特殊叠加条纹:1_N_Girl_Grad_lines.bmp
a)陈述:观察图片分析题目可得到一些处理图片的思想,由于是特殊叠加条纹,可考虑进行高通滤波,并分析进行高通滤波后的图片,找到适合的处理方法。还有既然是叠加,则要考虑用减法进行处理。
①&读取待处理图像,并进行傅里叶变换,观察频谱图谱。
②对条纹的原始频谱图进行高通滤波处理。此处滤波半径d0=65,滤波方法为高斯高通滤波器。对滤波频谱进行反傅里叶变换,观察高通滤波后的图像。
得到了我们意料中的结果,高斯滤波后的结果图中几乎只剩下了噪声条纹,这样有助于我们进行减法操作,用原始图像减去高通滤波后的条纹图像,观察效果。当然,由于条纹亮度较暗,我们可以考虑原图减去二倍条纹灰度,这个减法操作是在空域进行操作,而非频域操作。
②&空域减法操作,用原图减去二倍的高斯滤波还原图。
分析图可知,已经去除了一部分叠加条纹,图片质量有一定改善,但是图片中还存在明暗不一的条纹,还需要进行相应操作。分析图1.20可考虑,对差值频谱进行低通滤波处理,滤波半径不变,选择理想低通滤波器。
③&采用理想低通滤波器对差值频谱进行滤波处理,并且采用傅里叶反变换还原图像,观察处理后结果。
对比图中无叠加条纹,并且图片质量较好,边缘无明显模糊情况,故处理较为成功。
& &对于这种叠加条纹的处理,分析思路应该时找出噪声的频率,还原噪声,再从叠加图片中去除噪声条纹。当然,如果没有思路的时候就直接滤波,会发现效果很差,那么就应该深入思考,是不是方向不对,再换个思路处理图像。本体中叠加条纹是在高频区域,故可先将高频分离处理,再还原条纹,然后再在空域进行作差,最后观察效果,如果需要则可再进行一次低通滤波。
滤除下图中的干扰信号(2_lena_corrupt.bmp)
a)陈述:首先读取干扰图片,为了图片中的干扰信号,先进行频谱分析,观察频域干扰信号的特点,以便于找到合适的滤波方法。
①&读取图片,对图片进行傅里叶变换,观察频域规律。
&分析图可知,应该去除十字亮线,应该采用低通滤波器。当然低通滤波器有理想低通滤波器,巴特沃斯低通滤波器以及高斯低通滤波器,可通过不同滤波器进行滤波,分析滤波效果。本题中滤波半径d0=70。
②&理想低通滤波器滤波对原始频谱进行滤波处理
观察图与原始频谱比较可知,理想低通滤波器去掉了十字亮点,也去掉了一些有用频谱,经过理想低通滤波器滤波之后,虽然噪声去除,但是图片周围出席波浪纹,滤波效果不是很好。
③&高斯低通滤波器对原始频谱进行滤波处理
观察图,与原始频谱比较可知,高斯低通滤波器去掉了十字亮点,并且目标频谱保存较为完整,经过理想低通滤波器滤波之后,噪声去除,且滤波效果很好,图像略有模糊,但是模糊效应是滤波本来就存在的一个结果。
④&巴特沃斯低通滤波器对原始频谱进行滤波处理,此处选择低阶次来接近高斯滤波效果,通过选择level=3,对比巴特沃斯低通滤波器与高斯低通滤波器的滤波效果。
从图对比处理后的频谱图,可知高斯滤波后保留的原始信息较多,分析可知,巴特沃斯低通滤波器去除了噪音,发现高斯低通滤波器滤波结果比巴特沃斯滤波器滤波效果好,清晰度较高。故本题采用高斯低通滤波器滤除噪声,并保持较好的目标信息。
& &对比分析滤波效果可知,一般的噪声图像采用高斯低通滤波器可取得较好滤波效果,而理想低通滤波器虽然可以去除噪声,但是会造成一定的波浪条纹,而低阶巴特沃斯低通滤波器可接近高斯滤波器效果,但是清晰度比高斯滤波差。故本题采用高斯低通滤波器进行滤波。
1.&&利用傅里叶变换去除下面图像中的条纹
(1)横条纹:0_N_Girl_horiz_lines.bmp
img=imread('D:/VisualStudio 2015/0_N_Girl_horiz_lines.bmp');
%读取原图像
imshow(img)
title('原图')
fftimg=fft2(img);%二维离散傅里叶变换
shiftimg=fftshift(fftimg);%直流分量移到频谱中心
re=real(shiftimg);%取傅里叶变换的实部
logfftimg1=log(re);
imshow(logfftimg1,[8,10])
title('原图频谱')
[m,n]=size(shiftimg);%图像尺寸
n1=floor(m/2);
n2=floor(n/2);
d0=30;%截至半径
%理想滤波器
shiftimg1=
&&& for j=1:n
&&&&&&& if ((i-n1)^2+(j-n2)^2&=d0^2)
&&&&&&&&&&& shiftimg1(i,j)=0;
&&&&&&& end
re1=real(shiftimg1);%取傅里叶变换的实部
logfftimg1=log(re1);
imshow(logfftimg1,[8,10])
title('理想滤波器频谱')
shiftimg1=ifftshift(shiftimg1);
ifftimg1=uint8(real(ifft2(shiftimg1)));
imshow(ifftimg1);
title('理想滤波器滤波')
level=4;%2级巴特沃斯滤波器 2时接近高斯,5时接近理想,但是数值更大时会有模糊效应
%巴特沃斯低通
shiftimg2=
&&& for j=1:n
&&&&&& d=sqrt((i-n1)^2+(j-n2)^2);
&&&&&& h=1/(1+(d/d0)^(2*level));
&&&&&& shiftimg2(i,j)=h*shiftimg2(i,j);
re2=real(shiftimg2);%取傅里叶变换的实部
logfftimg2=log(re2);
imshow(logfftimg2,[8,10])
title('巴特沃斯低通滤波器频谱')
shiftimg2=ifftshift(shiftimg2);
ifftimg2=uint8(real(ifft2(shiftimg2)));
imshow(ifftimg2);
title('巴特沃斯低通滤波器滤波')
shiftimg4=
&&& for j=1:n
&&&&&& d=sqrt((i-n1)^2+(j-n2)^2);
&&&&&& h=exp(-1/2*(d^2/d0^2));
&&&&&& shiftimg4(i,j)=h*shiftimg4(i,j);
re4=real(shiftimg4);%取傅里叶变换的实部
logfftimg4=log(re4);
imshow(logfftimg4,[8,10])
title('高斯低通滤波器频谱')
shiftimg4=ifftshift(shiftimg4);
ifftimg4=uint8(real(ifft2(shiftimg4)));
imshow(ifftimg4);
title('高斯低通滤波器滤波')
[p,q]=size(img);
&&& for j=1:q
&&&&&&& if (kimg(i,j)==255)
&&&&&&&&&&& if(i&1)
&&&&&&&&&&&&& kimg(i,j)=kimg(i-1,j);
&&&&&&&&&&& else
&&&&&&&&&&&&&&& kimg(i,j)=kimg(i+1,j);
&&&&&&&&&&& end
&&&&&&& end
imshow(kimg);
title('空域去横条纹')
(2)特殊叠加条纹:1_N_Girl_Grad_lines.bmp
img=imread('D:/VisualStudio 2015/1_N_Girl_Grad_lines.bmp');%读取原图像
imshow(img)
title('原图')
fftimg=fft2(img);%二维离散傅里叶变换
shiftimg=fftshift(fftimg);%直流分量移到频谱中心
re=real(shiftimg);%取傅里叶变换的实部
logfftimg1=log(re);
imshow(logfftimg1,[8,10])
title('原图频谱')
[m,n]=size(shiftimg);%图像尺寸
n1=floor(m/2);
n2=floor(n/2);
d0=65;%截止半径
shiftimg5=
&&& for j=1:n
&&&&&& d=sqrt((i-n1)^2+(j-n2)^2);
&&&&&& h=1-exp(-1/2*(d^2/d0^2));
&&&&&& shiftimg5(i,j)=h*shiftimg5(i,j);
re5=real(shiftimg5);%取傅里叶变换的实部
logfftimg5=log(re5);
imshow(logfftimg5,[8,10])
title('高斯高通滤波器频谱')
shiftimg5=ifftshift(shiftimg5);
ifftimg5=uint8(real(ifft2(shiftimg5)));
imshow(ifftimg5);
title('高斯高通滤波器滤波')
sub_img=img-2*ifftimg5;
imshow(sub_img)
title('作差结果图')
re=real(shiftimg);%取傅里叶变换的实部
logfftimg1=log(re);
imshow(logfftimg1,[8,10])
title('原图频谱')
sub_fftimg=fft2(sub_img);%二维离散傅里叶变换
sub_shiftimg=fftshift(sub_fftimg);%直流分量移到频谱中心
sub_re1=real(sub_shiftimg);%取傅里叶变换的实部
sub_logfftimg1=log(sub_re1);
imshow(sub_logfftimg1,[8,10])
title('作差后频谱')
&&& for j=1:n
&&&&& if((i-n1)^2+(j-n2)^2&=d0^2);
&&&&&&&&& sub_shiftimg(i,j)=0;
sub_re=real(sub_shiftimg);%取傅里叶变换的实部
sub_logfftimg=log(sub_re);
imshow(sub_logfftimg,[8,10])
title('理想低通滤波器频谱')
sub_shiftimg=ifftshift(sub_shiftimg);
sub_ifftimg=uint8(real(ifft2(sub_shiftimg)));
imshow(sub_ifftimg);
title('理想低通滤波器滤波')
2.滤除下图中的干扰信号(2_lena_corrupt.bmp)
img=imread('D:/VisualStudio 2015/2_lena_corrupt.bmp');%读取原图像
imshow(img)
title('原图')
fftimg=fft2(img);%二维离散傅里叶变换
shiftimg=fftshift(fftimg);%直流分量移到频谱中心
re=real(shiftimg);%取傅里叶变换的实部
logfftimg1=log(re);
imshow(logfftimg1,[8,10])
title('原图频谱')
[m,n]=size(shiftimg);%图像尺寸
n1=floor(m/2);
n2=floor(n/2);
d0=70;%截至半径
%理想滤波器
shiftimg1=
&&& for j=1:n
&&&&&&& if ((i-n1)^2+(j-n2)^2&=d0^2)
&&&&&&&&&&& shiftimg1(i,j)=0;
&&&&&&& end
re1=real(shiftimg1);%取傅里叶变换的实部
logfftimg1=log(re1);
imshow(logfftimg1,[8,10])
title('理想滤波器频谱')
shiftimg1=ifftshift(shiftimg1);
ifftimg1=uint8(real(ifft2(shiftimg1)));
imshow(ifftimg1);
title('理想滤波器滤波')
level=3;%3级巴特沃斯滤波器
%巴特沃斯低通
shiftimg2=
&&& for j=1:n
&&&&&& d=sqrt((i-n1)^2+(j-n2)^2);
&&&&&& h=1/(1+(d/d0)^(2*level));
&&&&&& shiftimg2(i,j)=h*shiftimg2(i,j);
re2=real(shiftimg2);%取傅里叶变换的实部
logfftimg2=log(re2);
imshow(logfftimg2,[8,10])
title('巴特沃斯低通滤波器频谱')
shiftimg2=ifftshift(shiftimg2);
ifftimg2=uint8(real(ifft2(shiftimg2)));
imshow(ifftimg2);
title('巴特沃斯低通滤波器滤波')
shiftimg4=
&&& for j=1:n
&&&&&& d=sqrt((i-n1)^2+(j-n2)^2);
&&&&&& h=exp(-1/2*(d^2/d0^2));
&&&&&& shiftimg4(i,j)=h*shiftimg4(i,j);
re4=real(shiftimg4);%取傅里叶变换的实部
logfftimg4=log(re4);
imshow(logfftimg4,[8,10])
title('高斯低通滤波器频谱')
shiftimg4=ifftshift(shiftimg4);
ifftimg4=uint8(real(ifft2(shiftimg4)));
imshow(ifftimg4);
title('高斯低通滤波器滤波')
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:781次
排名:千里之外
原创:15篇I=imread('1.jpg');
I=rgb2gray(I);
I=im2double(I);
F=fft2(I);
F=fftshift(F);
T=log(F+1);
imshow(T,[]);
傅里叶变换:
分析代码:
1. I=imread('1.jpg');
读取图像,不多说了
2. I=rgb2gray(I);
将图像转换为灰度图,如果没有这一步的话,最终得到的傅里叶变换是这个样子的
3. I=im2double(I);
将图像的数据格式转换为double型的,此时图像的数值范围由原来的[0,255],变成了[0,1],其实不进行转换的话,也可以进行傅里叶变换,只是傅里叶变换后的图像会有所不同,如(3)所示,可以跟图(1)比较一下看看效果,有时候不同的人得出的傅里叶变换结果不相同,也许就是这个原因
4. F=fft2(I);
进行傅里叶变换
5. F=fftshift(F);
对傅里叶变换后的图像进行象限转换,没有这一步的话,最终输出的结果是这样的
6. F=abs(F);
求傅里叶变换的模,我们都知道傅里叶变换后的结果为复数,包含real实部和imag虚部,而abs就是求复数的模,经过这一步,F的类型由复数的double变成了实数的double,如果没有这一步, matlab会给出提示,Warning: Displaying real part of complex input.最终输出的结果如下。
7. T=log(F+1);
经过前几步之后,我们得到了傅里叶变换的幅值,但是傅里叶变换后的数值范围非常大,maxF = 2.04e+05,minF = 0.009,如果不进行转换的话在图中显示就是图(6)的样子,中间有个小白点
那为什么要用log(F+1)呢。如图7所示,对(0,1)之间的x值,经过log(X)变换后会变成负数,而log(X+1)则将所有的x值,映射成正数,数值范围也更小一些。
8.imshow(T,[]);
显示图像,之所以用imshow(T,[]);而不是imshow(T)。是因为即使经过对数变换后T的取值范围仍然大于[0,1],maxT=12.23,minT=0.009。imshow(T)只会显示[0,1]的值,而imshow(T,[]) 会根据灰度图的数值范围来显示图像,相当于将[0.09,12.23]映射到[0,1]显示。
阅读(...) 评论()Matlab傅里叶变换和各种滤波处理_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Matlab傅里叶变换和各种滤波处理
上传于|0|0|文档简介
&&数字图像处理,MATLAB,傅里叶变换,各种滤波处理
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 5497|回复: 10|关注: 0
彩色图像中值滤波后的显示怎么不对啊?大侠帮帮忙看看吧
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
读取一幅图像,对图像进行中值滤波,之后显示原始图像和滤波器后的图像。
I=imread('flower.jpg');
J = imnoise(I,'salt & pepper',0.02);
J1=J(:,:,1);
J2=J(:,:,2);
J3=J(:,:,3);
P1 =medfilt1(J1);
P2= medfilt1(J2);
P3= medfilt1(J3);
P(:,:,1)=P1;
P(:,:,2)=P2;
P(:,:,3)=P3;
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(P);
<h1 style="color:#3 麦片财富积分
关注者: 64
自己调试一下就是了
自己调试一下就是了
clc
I=imread('D:\Matlab中文论坛\lena\lena256.jpg');
J = imnoise(I,'salt & pepper',0.02);
J1=double(J(:,:,1));
J2=double(J(:,:,2));
J3=double(J(:,:,3));
P1 =medfilt1(J1);
P2= medfilt1(J2);
P3= medfilt1(J3);
P(:,:,1)=P1;
P(:,:,2)=P2;
P(:,:,3)=P3;
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(uint8(P));
复制代码
[ 本帖最后由 guopanfeng 于
18:10 编辑 ]
Are you gonna stand and fight like a man?
<h1 style="color:# 麦片财富积分
:handshake& &谢谢了,果然是大侠啊&&呵呵
<h1 style="color:# 麦片财富积分
回复 2# guopanfeng 的帖子
:handshake& &谢谢了,果然是大侠啊&&呵呵
<h1 style="color:# 麦片财富积分
都不知道怎么添,笨死了
<h1 style="color:# 麦片财富积分
芭芘燕格 发表于
都不知道怎么添,笨死了
说你自己呢?不用跑这来说噢~~~:lol
<h1 style="color:# 麦片财富积分
Stupid_Child 发表于
说你自己呢?不用跑这来说噢~~~
那不是本人发的,可能谁上我的号发的
我在论坛上重来没发过贴,见谅!
<h1 style="color:# 麦片财富积分
学到好多,谢谢哈
<h1 style="color:# 麦片财富积分
<h1 style="color:# 麦片财富积分
站长推荐 /3
使用MATLAB和Simulink进行软件无线电设计
Powered by

我要回帖

更多关于 pdf格式怎么打印 的文章

 

随机推荐