数字图像处理上机实验报告(基于matlab)

上传人:ji****en 文档编号:107889869 上传时间:2019-10-21 格式:DOCX 页数:28 大小:3.26MB
返回 下载 相关 举报
数字图像处理上机实验报告(基于matlab)_第1页
第1页 / 共28页
数字图像处理上机实验报告(基于matlab)_第2页
第2页 / 共28页
数字图像处理上机实验报告(基于matlab)_第3页
第3页 / 共28页
数字图像处理上机实验报告(基于matlab)_第4页
第4页 / 共28页
数字图像处理上机实验报告(基于matlab)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《数字图像处理上机实验报告(基于matlab)》由会员分享,可在线阅读,更多相关《数字图像处理上机实验报告(基于matlab)(28页珍藏版)》请在金锄头文库上搜索。

1、华北水利水电大学数字图像处理上机实验报告学院:数学与信息科学专业:信息与计算科学姓名:孙志攀学号:201216511指导老师:黄春艳日期:2015年5月4日第一次实验1. 图像的运算实验目的:图像的算术运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生成的两幅或多幅图像的误差。我们可以使用MATLAB基本算术符(、等)来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。图像处理工具箱包含了一个能实现所有数值数据的算术操作的函数集合。列举如下:函数名功能描述Imabsdiif

2、两幅图像的绝对差值Imadd两个图像的加法imcomplment补足一幅图像imdivide两个图像的除法imlincomb计算两幅图像的线形组合lmmultiply两个图像的乘法Imsubtract两个图像的减法使用图像工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uintl6数据,并返回相同格式的图像结果。图像的算术运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。无论进行哪一种代数运算都要保

3、证两幅输入图像的大小相等,且类型相同。实验内容:图像的加法MATLAB中调用imadd函数实现图像相加,格式如下:Z=imadd(X,Y);其中Z=XY。图像的减法图像减法也称为差分方法,MATLAB中调用imsubtract函数实现图像相减。调用格式如下:Z=imsubtract(X,Y);其中Z=XY。图像的乘法两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分。一幅图像乘以一个常数通常被称为缩放。如果使用的缩放因数大于1,那么将增强图像的亮度,如果因数小于1则会使图像变暗。MATLAB中调用immultiply函数实现两幅图像相乘。调用格式如下:Zimmultiply(X,Y)

4、;其中Z=XY。图像的除法除法运算可用于校正成像设备的非线性影响。MATLAB中调用imdivide函数进行两幅图像相除。调用格式如下:Z=imdivide(X,Y),其中Z=XY。图像四则运算因对uint8、uintl6数据,每步运算都要进行数据截取,将会减少输出图像的信息量。图像四则运算较好的办法是使用函数imlincomb。该函数按双精度执行所有代数运算操作,仅对最后的输出结果进行截取,该函数的调用格式如下:Z=imlincomb(A,X,B,Y,C),其中,Z=AXBYCZ=imlincomb(A,X,C),其中:ZAXCZ=imlincomb(A,X,B,Y),其中:Z=AXBY1.

5、 图像的加法基于Matlab的代码如下:clear; I=imread(C:UsersAdministratorDesktop大海.jpg)J=imread(C:UsersAdministratorDesktop恋人.png)K=imadd(I,J);subplot(2,2,1);imshow(I);subplot(2,2,2);imshow(J);subplot(2,2,3);imshow(K);图片素材:运行结果窗口截图:2. 图像的减法基于Matlab的代码如下:sea=imread(C:UsersAdministratorDesktop恋人.png)background=imopen(

6、sea,strel(disk,20);sea2=imsubtract(sea,background);subplot(1,2,1),imshow(sea);subplot(1,2,2),imshow(sea2); 素材图片:运行结果窗口截图:3. 图像的乘法基于Matlab的代码如下:I=imread(C:UsersAdministratorDesktop恋人.png)J=immultiply(I,1.2);K=immultiply(I,0.6);subplot(1,3,1),imshow(I);subplot(1,3,2),imshow(J);subplot(1,3,3),imshow(K)

7、;素材图片:运行结果窗口截图:4. 图像的除法基于Matlab的代码如下:Love=imread(C:UsersAdministratorDesktop恋人.png)I=double(Love);J=0.73*I+100;Ip=imdivide(I,J);subplot(2,2,1),imshow(uint8(I);subplot(2,2,3),imshow(uint8(J);subplot(2,2,4),imshow(uint8(Ip),);运行结果窗口截图:5. 图像的逻辑运算(与、或、非、异或等运算)基于Matlab的代码如下:clear allA=zeros(128);A(40:70,

8、60:100)=1; %生成128*128的零矩阵A,将宽40-70,高60-100的值设为1B=zeros(128);B(50:80,40:70)=1; %生成128*128的零矩阵B,将宽50-80,高40-70的值设为1 C=A(:,:,1); %取单色% D=B(:,:,1);figure(Name,图像逻辑运算) res1=C&D; %C&D%res2=C|D; %C|D%res3=xor(C,D); %xor C D% res3_2=xor(D,C) %xor D C% res4=not(C)¬(D); %C% res4_2=not(C)|not(D); %D% subplo

9、t(2,3,1)subplot(2,3,1)imshow(res1);title(C&D); % &运算subplot(2,3,2)imshow(res2);title(C|D); % |运算subplot(2,3,3)imshow(res3);title(xor C D); % or运算subplot(2,3,4)imshow(res3_2);title(xor D C); subplot(2,3,5)imshow(res4);title(C&D); % 运算subplot(2,3,6)imshow(res4_2);title(C|D);运行结果窗口截图:2. 图像的滤波(空间、频域)实验目

10、的 掌握matlab程序设计语言,掌握matlab基本数据类型、核心函数及辅助函数的使用。掌握理想和线性平滑滤波器的设计方法。实验内容 利用理想和线性平滑滤波器实现图像的滤波;三、实验原理二维理想低通滤波器的传递函数为:D0是指定非负数值,D(u,v)是(u,v)点距频率中心的距离。如果要研究的图像尺寸为M X N,则它的变换也有相同的尺寸。在半径为D0的圆内,所有频率无衰减地通过滤波器,而在此半径之外的所有频率完全被衰减掉。高斯高通滤波器传递函数为:D(u,v)是距傅立叶变换中心原点的距离。D0是截止频率。高斯低通滤波器的傅立叶变换也是高斯的。二维理想高通滤波器的传递函数为:D0是从频率矩形

11、中点测得的截止频率长度,它将以D0为半径的圆周内的所有频率置零,而毫不衰减地通过圆周外的任何频率。但其物理上是不可实现的。高斯高通滤波器传递函数为:高通滤波器能够用高斯型低通滤波器的差构成。这些不同的滤波器有更多的参数,因此能够对滤波器的形状进行更多的控制。四实验设备和仪器1计算机 2. matlab开发平台空间域滤波(举例:线性平滑滤波器)基于Matlab的代码如下:I=imread(C:UsersAdministratorDesktop撑着油纸伞的姑娘.jpg);subplot(231)imshow(I)title(原始图像)I=rgb2gray(I);I1=imnoise(I,salt

12、& pepper,0.02);subplot(232)imshow(I1)title( 添加椒盐噪声的图像)k1=filter2(fspecial(average,3),I1)/255; %进行3*3模板平滑滤波k2=filter2(fspecial(average,5),I1)/255; %进行5*5模板平滑滤波k3=filter2(fspecial(average,7),I1)/255; %进行7*7模板平滑滤波k4=filter2(fspecial(average,9),I1)/255; %进行9*9模板平滑滤波subplot(233),imshow(k1);title(3*3 模板平滑

13、滤波);subplot(234),imshow(k2);title(5*5 模板平滑滤波);subplot(235),imshow(k3);title(7*7 模板平滑滤波);subplot(236),imshow(k4);title(9*9 模板平滑滤波);运行结果窗口截图:频域滤波(举例:理想低通滤波器)基于Matlab的代码如下:RGB = imread(C:UsersAdministratorDesktoplove.png);I0 = rgb2gray(RGB); subplot(2,3,1),imshow(I0);title(原图);I1 = imnoise(I0,gaussian)

14、; %对原图像加噪声subplot(2,3,2),imshow(I1);title(加入噪声后) %将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心s=fftshift(fft2(I1);subplot(2,3,3),imshow(log(1+abs(s),);title(fftshift); M,N=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整%ILPF滤波(程序中以d0=15为例)d0=50; %初始化d0for i=1:Mfor j=1:N d=sqrt(i-n1)2+(j-n2)2); %点(i,j)到傅立叶变换中心的距离 if d=d0 %点(i,j)在通带内的情况 h(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号