北京航空航天大学数字图像处理实验报告.docx

上传人:b****1 文档编号:2098765 上传时间:2022-10-26 格式:DOCX 页数:31 大小:30.64KB
下载 相关 举报
北京航空航天大学数字图像处理实验报告.docx_第1页
第1页 / 共31页
北京航空航天大学数字图像处理实验报告.docx_第2页
第2页 / 共31页
北京航空航天大学数字图像处理实验报告.docx_第3页
第3页 / 共31页
北京航空航天大学数字图像处理实验报告.docx_第4页
第4页 / 共31页
北京航空航天大学数字图像处理实验报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

北京航空航天大学数字图像处理实验报告.docx

《北京航空航天大学数字图像处理实验报告.docx》由会员分享,可在线阅读,更多相关《北京航空航天大学数字图像处理实验报告.docx(31页珍藏版)》请在冰豆网上搜索。

北京航空航天大学数字图像处理实验报告.docx

北京航空航天大学数字图像处理实验报告

成绩

数字图像处理

实验报告

院(系)名称

电子信息工程学院

专业名称

通信工程

学生学号

学生姓名

2017年5月

实验一图像变换实验

1.实验目的:

学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。

2.实验内容:

对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。

在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。

3.实验要求

实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。

具体要求如下:

(1)对图像进行傅立叶变换、获得变换后的系数矩阵;

(2)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱;

(3)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像;

(4)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。

(5)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5;

(6)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。

4.实验结果

图1.1傅里叶变换及逆变换

图1.2离散余弦变换及逆变换

图1.3哈达玛变换及逆变换

观察结果可以发现,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换之后获得逆变换的图像质量有所下降,信噪比提高。

但是图像质量的下降在可以接受的范围内,并且过程中实现了对于图像的压缩。

通过对于信噪比的比较可以发现:

离散余弦变换的效果最好,傅里叶变换的效果最差。

5.实验代码:

*******************************傅里叶变换****************************

functionFourier_Callback(hObject,eventdata,handles)

%-------------------------显示原图像---------------------------------

figure=imread('lena512.bmp');

subplot(1,3,1);

imshow(figure);

title('Lena原图');

%-----------------------傅里叶变换频谱图------------------------------

fourier=fft2(figure);

fourier=fftshift(fourier);

R=real(fourier);

I=imag(fourier);

spectrum=abs(fourier);

spectrum_norm=(spectrum-min(min(spectrum)))/(max(max(spectrum))-min(min(spectrum)))*255;

subplot(1,3,2);

imshow(spectrum_norm);

title('傅里叶变换频谱图');

%-----------------------傅里叶逆变换----------------------------------

[height,width]=size(spectrum);

spectrum_adjust=sort(reshape(spectrum,[1,height*width]));

threshold=spectrum_adjust(round(0.95*height*width));

fori=1:

height

forj=1:

width

ifspectrum(i,j)<=threshold

R(i,j)=0;

I(i,j)=0;

end

end

end

refigure=ifft2(ifftshift(R+1i*I));

subplot(1,3,3);

imshow(uint8(refigure));

title('逆变换图像');

%--------------------------PSNR-------------------------------------

PSNR=PSNR_cal(figure,refigure,8);

set(handles.edit2,'string',PSNR);

*******************************离散余弦变换****************************

functiondct_Callback(hObject,eventdata,handles)

%-------------------------显示原图像---------------------------------

figure=imread('lena512.bmp');

subplot(1,3,1);

imshow(figure);

title('Lena原图');

%----------------------离散余弦变换频谱图------------------------------

DCT=dct2(figure);

subplot(1,3,2);

imshow(uint8(abs(DCT)));

title('离散余弦变换频谱图');

%-----------------------离散余弦逆变换--------------------------------

Size=size(DCT);

height=Size

(1);

width=Size

(2);

DCT_sort=sort(reshape(DCT,1,width*height));

threhold=DCT_sort(round(width*height*0.95));

DCT(abs(DCT)

refigure=idct2(DCT);

subplot(1,3,3);

imshow(uint8(refigure));

title('逆变换图像');

%--------------------------PSNR-------------------------------------

PSNR=PSNR_cal(figure,refigure,8);

set(handles.edit2,'string',PSNR);

*******************************哈达玛变换****************************

functionHadamard_Callback(hObject,eventdata,handles)

%-------------------------显示原图像---------------------------------

figure=imread('lena512.bmp');

subplot(1,3,1);

imshow(figure);

title('Lena原图');

%-----------------------哈达玛变换频谱图------------------------------

H=hadamard(512);

figure=double(figure);

DHT=(H*figure*H)./512;

subplot(1,3,2);

imshow(uint8(DHT));

title('哈达玛变换频谱图');

%-----------------------哈达玛逆变换----------------------------------

Size=size(figure);

height=Size

(1);

width=Size

(2);

DHT_sort=sort(reshape(DHT,1,width*height));

threhold=DHT_sort(round(width*height*0.95));

DHT(abs(DHT)

iH=H^-1;

refigure=(iH*DHT*iH)*512;

subplot(1,3,3);

imshow(uint8(refigure));

title('逆变换图像');

%--------------------------PSNR-------------------------------------

PSNR=PSNR_cal(figure,refigure,8);

set(handles.edit2,'string',PSNR);

*******************************PSNR计算函数****************************

function[PSNR]=PSNR_cal(figure1,figure2,bit)

img=double(figure2);

imgn=double(figure1);

Size=size(figure1);

height=Size

(1);

width=Size

(2);

MAX=2^bit-1;

PMSE=sum(sum((img-imgn).^2))/(height*width)/MAX^2;

PSNR=-10*log10(PMSE);

end

实验二图像复原实验

1.实验目的:

利用反向滤波与维纳滤波进行降质图像复原,比较不同参数选择对复原结果的影响。

2.实验内容:

(1)利用反向滤波方法进行图像复原;

(2)利用维纳滤波方法进行图像复原。

3.实验要求:

(1)输入图像采用实验1所获取的图像,对输入图像采用运动降质模型,如下式所示

与降值图像相关的参数是:

(2)对每一种方法通过计算复原出来的图像的峰值信噪比,进行最优参数的选择,包括反向滤波方法中进行复原的区域半径、维纳方法中的噪声对信号的频谱密度比值K;

(3)将降质图像与利用最优参数恢复后的图像同时显示出来,以便比较。

4.实验结果:

图2.1反向滤波

图2.2维纳滤波

反向滤波方法中进行复原的区域半径越大,复原效果越好,当=1时,能够完全复原降质图像;维纳滤波方法中的噪声对信号的频谱密度比值K值越小,复原效果越好,当K=0时,能够完全复原降质图像。

5.实验代码:

*******************************降质模型****************************

lena=imread('lena512.bmp');

subplot(2,3,1);

imshow(lena);

title('Lena原图');

[x,y]=size(lena);

fftlena=fft2(lena);

H1=zeros(x,y);

j=sqrt(-1);

foruu=1:

x;

forvv=1:

y;

u=-x/2+uu-1;

v=-y/2+vv-1;

H1(uu,vv)=5/(pi*(u+v))*sin(pi*(u+v))*exp(-pi*j*(u+v));

end

end

nnn=isnan(H1);

foruu=1:

x;

forvv=1:

y;

ifnnn(uu,vv)==1;

u=-x/2+uu-1;

v=-y/2+vv-1;

H1(uu,vv)=T/(pi*(a*u+b*v+0.001))*sin(pi*(a*u+b*v+0.001))*exp(-pi*j*(a*u+b*v+0.001));

end

end

end

Q0=fftlena.*H1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1