数字图像处理实验讲义16学时版Word格式.docx

上传人:b****1 文档编号:4882810 上传时间:2023-05-04 格式:DOCX 页数:28 大小:118.65KB
下载 相关 举报
数字图像处理实验讲义16学时版Word格式.docx_第1页
第1页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第2页
第2页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第3页
第3页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第4页
第4页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第5页
第5页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第6页
第6页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第7页
第7页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第8页
第8页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第9页
第9页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第10页
第10页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第11页
第11页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第12页
第12页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第13页
第13页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第14页
第14页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第15页
第15页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第16页
第16页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第17页
第17页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第18页
第18页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第19页
第19页 / 共28页
数字图像处理实验讲义16学时版Word格式.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理实验讲义16学时版Word格式.docx

《数字图像处理实验讲义16学时版Word格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验讲义16学时版Word格式.docx(28页珍藏版)》请在冰点文库上搜索。

数字图像处理实验讲义16学时版Word格式.docx

mat2gray()-----------------convertimagetodouble,range[0,1]

im2double()----------------convertimagetodouble

im2bw()---------------------convertimagetological

5.实验过程

使用函数imread打开一幅灰度图像(fig0309abc.jpg),使用函数imwrite将图像另存为不同的文件名;

在此过程中观察图像矩阵的形式,并用图像矩阵的索引法,观察并记录5×

5的矩阵片断;

使用函数size察看图像大小,使用函数imfinfo察看图像信息;

记录图像信息;

分别使用函数imshow和函数imview显示图像;

记录两种方式的区别;

使用函数imread打开一幅彩色图像(start.jpg),观察图像矩阵的形式;

并分别观察和记录RGB三色5×

使用函数rgb2gray将彩色图像转换为灰度图像;

使用im2uint8和im2double转换图像的数据类型,记录5×

5矩阵片断在转换前后的变化。

 

实验2图像点运算

1.实验要求

图像灰度变换方法;

灰度的对数扩展法;

绘制灰度直方图;

直方图均衡法;

任意灰度变换实现;

2.实验类型验证型

3.实验时间2学时

4.实验方法

使用函数imadjust可以实现图像灰度变换,imadjust的语法为

imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)

gamma所表示的意义:

>

1----------凹曲线

<

1----------凸曲线

=1----------直线

灰度的对数扩展法g=c*log(1+double(f))

目的是使亮区域得到抑制,暗区域灰度得到均匀增强

使用语句

im2uint8(mat2gray(log(1+double(f))))

其中系数c通过mat2gray函数自动调整

灰度直方图反映图像的灰度分布情况,即亮度分布情况;

它说明不同灰度的像素个数或分布概率

使用函数imhist绘制灰度直方图,imhist的语法为

h=imhist(f);

figure,imhist(f);

figure,plot(h);

figure,stem(h);

figure,bar(h);

由于拍摄和处理的原因,导致图像的灰度分布范围过小;

最大熵原理指出:

数据满足均匀分布时,信息量最大;

依据这个原理,通过灰度直方图均衡化将图像灰度分布扩展到整个灰度分布范围,可以使图形信息量最大,即使使得图像对比度增强。

使用函数histeq对图像进行直方图均衡,histeq的语法为

g=histeq(f,nlev);

%nlev为输出的灰度级数,通常取256,默认64

figure,imhist(g);

图1

任意灰度变换需要进行分段计算,如图1

α*f,0≤f<a;

g=β*(f-a)+ga,a≤f<b;

γ*(f-b)+gb,b≤f≤c;

5.实验过程

使用函数imread打开一幅灰度图像(fig0222b.jpg),使用函数imadjust实现图像灰度变换;

分别使用:

g1=imadjust(f,[20255],[0255],0.5);

g2=imadjust(f,[20255],[0255],1);

g3=imadjust(f,[20255],[0255],2);

g4=imadjust(f,[0255],[25505],1);

figure,imshow(g1);

figure,imshow(g2);

figure,imshow(g3);

figure,imshow(g4);

观察并记录四种变换差别。

(注意:

请将方括号内的整数需要手工折算成浮点数)

使用函数imread打开一幅灰度图像(fig0305.tif),使用如下语句进行对数扩展

figure,imshow(f2);

g5=im2uint8(mat2gray(log(1+double(f2))));

figure,imshow(g5);

观察并记录均衡前后的差别。

使用函数imread打开一幅灰度图像(fig0222b.jpg),使用函数imhist绘制灰度直方图,直方图有四种表现形式

h=imhist(f3);

figure,imhist(f3);

观察四种直方图的差别。

使用函数imread打开一幅灰度图像(fig0308.tif),说明这幅图像直方图存在的问题。

使用函数histeq对图像进行直方图均衡,比较并记录均衡前后图像的变化

h1=histeq(f3,256);

figure,imhist(h1);

figure,imshow(f3);

figure,imshow(h1);

打开一幅灰度图像(fig0309abc.jpg),编写一个m文件完成图2的灰度变换功能,观察并记录图像变换前后的区别,将程序记录

图2

实验3图像间的运算

图像加法;

图像减法;

图像乘法;

图像除法;

图像与或非等逻辑运算;

图像加法是把图像叠加在一起的操作,使用函数imadd将两幅图像相加。

f1=imread('

Fig0206a.tif'

);

%读入图像

f2=imread('

Fig0207.tif'

f3=imadd(f1,f2);

figure,imshow(f3);

图像减法是从一幅图像中减去另一幅图像,经常被用作检测两幅图像的差别,使用函数imsubtract将两幅图像相减。

下面的操作是根据一幅原始图像,生成其背景亮度图像,然后再从原图像中减去背景亮度图像,从而得到结果。

f4=imread('

Fig0404.jpg'

bkgrd=imopen(f4,strel('

disk'

15));

f5=imsubtract(f4,bkgrd);

figure,subplot(1,2,1),imshow(f4);

subplot(1,2,2),imshow(f5);

图像乘法将两幅图像对应点的像素进行相乘操作(MATLAB的点乘),使用函数immultiply对两幅图像进行乘法操作,并将相乘的结果作为输出图像对应点的像素值。

f6=imread('

f7=imread('

Fig0207.tif'

f8=immultiply(f6,f7);

%两幅图像相乘

f9=immultiply(f6,1.2);

%图像和一个系数相乘,等于将灰度乘以一个系数

figure,subplot(2,2,1),imshow(f6);

subplot(2,2,2),imshow(f7);

subplot(2,2,3),imshow(f8);

subplot(2,2,4),imshow(f9);

图像除法将两幅图像对应点的像素进行相除操作(MATLAB的点除),使用函数imdivide对两幅图像进行除法操作,并将相除的结果作为输出图像对应点的像素值。

f10=imread('

Fig0206a.tif'

f11=imread('

f12=double(f11);

f13=f12*0.2+50;

f14=uint8(f13);

f15=imdivide(f10,f14);

figure,imshow(f15);

图像间的逻辑运算主要有“与”、“或”、“非”等,把它们组合起来可以构成其他逻辑运算。

当我们对灰度级进行逻辑操作时,像素值作为一个二进制数来处理,逻辑操作按位进行。

“与”和“或”运算通常用作模板,即通过这些操作可以从一幅图像中提取子图像,更加突出子图像的内容。

下面的“与”和“或”运算通过逐点进行。

f=imread('

fig0222b.jpg'

[m,n]=size(f);

figure,subplot(2,3,1),imshow(f);

f1=zeros(m,n);

f1(20:

150,70:

170)=255;

f1=uint8(f1);

subplot(2,3,2),imshow(f1);

fori=1:

m

forj=1:

n

f2(i,j)=bitand(f(i,j),f1(i,j));

end

end

subplot(2,3,3),imshow(f2);

%显示“与”的结果

f3=ones(m,n)*255;

f3(20:

170)=0;

f3=uint8(f3);

subplot(2,3,5),imshow(f3);

f4(i,j)=bitor(f(i,j),f3(i,j));

subplot(2,3,6),imshow(f4);

%显示“或”的结果

f5(i,j)=bitxor(f(i,j),255);

%和1取异或等于求反

subplot(2,3,4),imshow(f5);

%显示“非”的结果

使用函数imadd将两幅图像相加('

)('

),观察并记录结果。

使用函数imsubtract将两幅图像相减('

使用函数immultiply对两幅图像进行乘法操作('

),并将相乘的结果作为输出图像对应点的像素值,观察并记录结果。

使用函数imdivide对两幅图像进行除法操作('

),并将相除的结果作为输出图像对应点的像素值,观察并记录结果。

使用点运算进行图像“与”、“或”、“非”操作('

实验4图像空间运算

均值滤波方法;

中值滤波方法;

边缘检测;

基于边缘检测的图像增强法;

采用边缘检测和灰度变换结合图像增强法;

图像的空间滤波使用函数imfilter实现,imfilter的语法为

imfilter(f,w,{filtering_mode},{boundary_option},{size_option})

f--------imagematrix

w-------imagemask

{}为可选项

均值滤波的掩模

中值滤波的函数medfilt2()

边缘检测的算子

基于边缘检测的图像增强算子

采用边缘检测和灰度变换结合图像增强法

是图像经过一阶梯度运算的结果

1.

2.

3.

4.

使用函数imread打开一幅有噪声的灰度图像(fig0318.tif);

均值滤波的各种掩模过滤噪声,观察并记录各种掩模处理结果的差异,注意掩模的系数

中值滤波观察并记录和中值滤波相比的结果差异

使用函数imread打开一幅灰度图像(fig0316.tif);

使用各种边缘检测的算子检测边缘,观察并记录各种算子处理结果的差异。

使用各种边缘增强的算子处理图像,观察并记录各种算子处理结果的差异。

打开一幅灰度图像(fig0413.tif),编程实现四种采用边缘检测和灰度变换结合图像增强法

设门限T=210,LG=230,LB=50,(这是参考数值,请根据实际情况调整)

记录程序,并且比较四种处理结果的差异

实验5图像频域运算

掌握图像进行二维DFT的方法;

完成简单的图像频域滤波;

采用频域处理对图像增强法;

图像的图像进行二维DFT使用函数fft2()实现,fft2()的语法为

F=fft2(f);

为了显示频谱的实部使用

S=abs(F);

figure,imshow(S,[]);

为了将频谱居中显示,使用函数fftshift()搬移,fftshift()的语法为

Fc=fftshift(F);

figure,imshow(Fc,[]);

为了使频谱的对比度增强,采用对数增强法

S2=log(1+abs(Fc));

figure,imshow(S2,[])

将图像进行IDFT之前,使用函数ifftshift()将频谱反向搬移,然后使用函数ifft2()进行IDFT

生成低通滤波使用函数lpfilter(),生成高通滤波使用函数hpfilter(),(参考函数部分)

H1=lpfilter(‘ideal’,M,N,D0);

H2=hpfilter(‘ideal’,M,N,D0);

对图像进行频域滤波使用函数dftfilt(),(参考函数部分)

G1=dftfilt(f,H1);

G2=dftfilt(f,H2);

figure,imshow(G1,[]);

figure,imshow(G2,[]);

对图像进行高频强调增强,是在保持图像特征的基础上,对高频部分进行一定提升

H3=0.5+2*H2;

G3=dftfilt(f,H3);

figure,imshow(G3,[]);

使用函数imread打开一幅图像(fig0403.tif),对图像进行DFT,频谱搬移,反搬移,和IDFT

使用函数imread打开一幅灰度图像(fig0413.tif),对图像进行低通滤波,高通滤波,和高频增强

设计一种频域图像增强方法对图像fig0419.tif进行增强,同时采用空间增强方法对结果进行比较

实验6图像退化和复原

完成图像运动模糊退化;

完成有约束的最小二乘方滤波;

完成图像维纳滤波;

完成图像逆滤波;

比较各种方法的优缺点;

创建一个运动模糊退化滤波器(退化滤波器PSF),使用函数fspecial创建退化滤波器PSF,然后调用imfilter对图像进行卷积运算,就可以得到一幅运动退化图像。

I=imread('

figure,subplot(1,2,1),imshow(I);

LEN=31;

THETA=11;

PSF=fspecial('

motion'

LEN,THETA);

%生成退化函数

blurred=imfilter(I,PSF,'

circular'

'

conv'

subplot(1,2,2),imshow(Blurred);

然后使用imnoise函数对图像添加随机噪声。

fnblurred=imnoise(blurred,'

gaussian'

0,0.001);

%产生随机噪声图像

figure,imshow(fnblurred);

下面,使用函数deconvwnr对无噪声的运动模糊图像进行复原,这里假设退化函数PSF已知

wnr1=deconvwnr(blurred,PSF);

figure,imshow(wnr1);

然而,实际情况是退化函数PSF是未知的,只能通过一些先验参数进行复原,所以,这里采用不同的LEN和THETA参数,进行实验,体会一下退化函数PSF的重要性。

wnr2=deconvwnr(blurred,fspecial('

2*LEN,THETA));

figure,subplot(1,2,1),imshow(wnr2);

wnr3=deconvwnr(blurred,fspecial('

LEN,2*THETA));

subplot(1,2,2),imshow(wnr3);

接下来,使用函数deconvwnr对一幅有噪声的运动模糊图像进行维纳滤波复原。

wnr4=deconvwnr(fnblurred,PSF);

figure,imshow(wnr4);

从结果中可以看出,复原效果不是很好,这是由于维纳滤波器设计不合适所导致的。

为了使维纳滤波复原的效果变好,必须使用deconvwnr函数的可选参数NSR、NCORR和ICORR,通过改变参数获得不同的复原效果。

pnoise=imnoise(zeros(size(f)),’gaussian’,0,0.001);

NSR=sum(pnoise(:

).^2)/sum(im2double(fnblurred(:

)).^2);

%使用信噪比作为约束条件

wnr5=deconvwnr(fnblurred,PSF,NSR);

NP=abs(fftn(pnoise)).^2;

NCORR=fftshift(real(ifftn(NP)));

%使用噪声自相关函数

IP=abs(fftn(im2double(fnblurred))).^2;

ICORR=fftshift(real(ifftn(IP)));

%使用图像自相关函数

wnr6=deconvwnr(fnblurred,PSF,NCORR,ICORR);

figure,imshow(wnr6);

盲目去卷积法可在对退化情况完全不知情的下(忽略噪声影响)进行逆滤波操作。

可以使用deconvblind函数进行盲目去卷积。

7,10);

blurred01=imfilter(I,PSF,'

figure,imshow(blurred01);

UNDERPSF=ones(size(PSF)-4);

[J1P1]=deconvblind(blurred01,UNDERPSF);

%使用较小的PSF进行逆滤波

figure,imshow(J1);

OVERPSF=padarray(UNDERPSF,[44],'

replicate'

both'

[J2P2]=deconvblind(blurred01,OVERPSF);

%使用较大的PSF进行逆滤波

figure,imshow(J2);

INITPSF=padarray(UNDERPSF,[22],'

[J3P3]=deconvblind(blurred01,INITPSF);

%使用真实的PSF进行逆滤波

figure,imshow(J3);

从结果中可以发现,退化函数PSF对图像复原质量有着非常重要的影响,实际应用中可以通过分析,使用不同大小的PSF对图像进行复原,从中选择一个最合适的PSF使用。

使用函数fspecial创建退化滤波器PSF,然后调用imfilter对图像进行卷积运算,就可以得到一幅运动退化图像,观察并记录结果。

使用imnoise函数对图像添加随机噪声,观察并记录结果。

使用函数deconvwnr对无噪声的运动模糊图像进行复原,观察并记录结果。

同时采用不同的LEN和THETA参数,进行实验,体会一下退化函数PSF的重要性,观察并记录结果。

使用函数deconvwnr对一幅有噪声的运动模糊图像进行维纳滤波复原,观察并记录结果。

为了使维纳滤波复原的效果变好,必须使用deconvwnr函数的可选参数NSR、NCORR和ICORR,通过改变参数获得不同的复原效果,观察并记录结果。

使用deconvblind函数进行盲目去卷积,采用不同的退化函数,观察并记录结果。

实验7彩色图像处理

学习MATLAB中彩色图像的表示方法

掌握彩色图像空间的转换方法

掌握彩色图像平滑滤波和锐化的方法

3.实验

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2