数字图像处理实验一二剖析

上传人:兰*** 文档编号:204576867 上传时间:2021-10-26 格式:DOC 页数:6 大小:30.50KB
返回 下载 相关 举报
数字图像处理实验一二剖析_第1页
第1页 / 共6页
数字图像处理实验一二剖析_第2页
第2页 / 共6页
数字图像处理实验一二剖析_第3页
第3页 / 共6页
数字图像处理实验一二剖析_第4页
第4页 / 共6页
数字图像处理实验一二剖析_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数字图像处理实验一二剖析》由会员分享,可在线阅读,更多相关《数字图像处理实验一二剖析(6页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理实验一二剖析实验一 数字图像的基本处理 预习要求: 1、熟悉MATLAB的使用环境; 2、熟悉数字图像的矩阵表示形式; 3、掌握二维离散傅里叶变换。 一、实验目的 ? 掌握MATLAB中数字图像的存储、读取和显示 ? 掌握MATLAB中的基本数据、图像类型,以及类型之间的相互转换 ? 掌握二维离散傅里叶变换的常用函数 二、实验原理 1、MATLAB中数字图像的存储、读取和显示 读取图像通过imread来执行,语法为: f=imread(filename); 其中,filename参数表示输入的文件名,包括路径和文件名,函数返回值f是一个图像数组。MATLAB支持的图像类型有TIFF

2、、JPEG、GIF、BMP、PNG和XWD等。 保存图像使用函数imwrite来执行,语法有以下几种: imwrite(f, filename); %默认方式,文件格式由后缀名来指定 imwrite(f, filename, tif); %由第三个参数指定保存文件的格式 imwrite(f, filename.jpg , quality, q); %保存JPEG文件,指定JPEG的压缩质量 显示图像使用imshow来执行,基本语法为: imshow(f, G); %f是图像数组,G是该图像显示的灰度级数,默认灰度级数256 imshow(f, low high); %所有大于high的显示为白

3、色,小于low的显示为黑色 imshow(f, ); %low设置为f的最小值,high设置为f的最大值 当用imshow显示另一幅图像g时,MATLAB会在屏幕上用新图替换旧图像,为保持第一幅图像同事显示第二幅图像,可以使用figure函数:figure, imshow( g ) 2、MATLAB中的数据类型级相互转换 MATLAB中常用的数据类型有:double, uint8, uint16, uint32, int8, int16, int32, single, char, logical等。支持的图像类型有亮度图像、二值图像、索引图像和RGB图像。 表1 常用的图像格式 格式名称 描述

4、 可识别的扩展符 TIFF 加标识的图像文件格式 .tif, .tiff JPEG 联合图像专家组 .jpg, .jpeg GIF 图形交换格式 .gif BMP Windows位图 .bmp PNG 可移植的网络图形 .png 常用的图像类型转换函数: g=im2uint8(f); %图像转换到uint8类型 g=im2gray(f, fmin, fmax ); %图像转换到double类型,值在0,1区间,规定fmin,fmax 是为了在转换时将f中小于fmin的值在g中转换为0,大于fmax的值转换为1。图像的 信息可以通过whos f 显示。 3、二维离散傅里叶变换 MATLAB中,傅

5、里叶变换采用快速傅里叶变换函数来实现,基本语法: F=fft2( f ); 其中,f是输入图像,F是傅里叶变换结果,默认f与F的尺寸相同。 傅里叶的逆变换函数为 ifft2( F ); 图像处理中,逆变换一般只取实部,f=real( ifft2( F ) ); 傅里叶频谱可以用以下函数来计算: S=abs(F); 由于傅里叶变换的周期性问题,在频域内的一个周期内只能观察到紧邻的4个1/4周期的频谱,不能观察到一个完整的周期。为了方便显示,可将傅里叶变换后的原点移动到频谱中心,相应的函数为:FC=fftshift( F ); 逆操作为:F=ifftshift( FC ); 对数变换函数常用来扩展

6、低灰度范围,压缩高灰度范围,这样可以使低灰度值的图像细节更清楚。对数变换函数采用:g( x, y )=log(f( x, y)+1); 三、实验内容 1、练习图像的存储与显示,以及图像的压缩存储(参考程序1); 2、补填程序2的空白处,完成程序的编译,输出结果。 四、实验方法及程序 程序1: %*保存图像* f=imread(D:/Matlab/work/kid.jpg); imshow(f); %*以质量参数为25%保存图像* imwrite(f,kid.jpg,quality,25); g25=imread(kid.jpg); figure,imshow(g25, ); %*显示压缩文件的

7、相关信息* imfinfo kid.jpg %*由imfinfo产生的信息附加到形式为K域的结构变量中* K=imfinfo(kid.jpg); image_bytes=K.Width*K.Height*K.BitDepth/8;%压缩前图像文件的大小 compresser_bytes=K.FileSize; %压缩后图像问价的大小 compress_ratio=image_bytes/compressed_bytes %压缩率 程序2:对一亮块图像进行傅里叶变换,中心化其频谱,并进行对数变换。 %产生亮块图像f(m,n) clear all close all; col=128; f=zer

8、os(col); for i=29:98, for j=57:70 f(i,j)=255; end end figure(1); subplot(1,3,1); imagesc(f,0 255); axis image; colormap(gray); xlabel(a)原图像); %对原图像进行傅里叶变换 F1=?; %对f 图像进行傅里叶变换,并使原点移到频谱中心 figure(1); subplot(1,3,2); imshow(abs(F1),); xlabel(b)图像的傅里叶谱); %对F1进行对数变换 F2=?; figure(1); subplot(1,3,3); imshow

9、(F2,); xlabel(c)傅里叶谱的对数变换); 五、实验结果与分析 程序的运行及测试结果(粘贴截图); 实验总结及心得。 实验二 亮度变换与空间滤波 预习要求: 1、实现图像对比度增强的线性和非线性方法有哪些。 2、图像直方图的定义。 3、直方图均衡化、直方图规定化的概念。 一、实验目的 ? 掌握灰度图像的常用亮度变换方法 ? 掌握灰度图像的直方图的概念和获取方法 ? 掌握直方图均衡化的概念和实现方法 ? 了解灰度图像空间域的增强方法 二、实验原理 1、数字图像的亮度变换 亮度变换只与像素本身的值有关,与像素的位置和邻域的值无关,所以亮度变换可以用简单的函数来表示: s = T ( r

10、 ),其中,r是变换前的灰度值,s是变换后的灰度值。常用的亮度变换有亮度反转、对数变换、幂次变换和对比度拉伸变换等。 (1) 亮度变换基本函数imadjust 亮度变换函数imadjust实现如下的图像校正: s = T ( r ) = c r 其中,r是输入的图像值,s是输出的图像值,c是常数, 是伽马系数。此变换也称为是伽马校正。Imadjust 的基本语法: g = imadjust ( f , low_in high_ in ,low_out high_out , gamma ); 函数的功能是将f 的亮度值映射到g的新值上。low_in,high_ in:输入图像被处理的最小值和最大

11、值。low_out,high_out:输出图像的最大值和最小值。 输入图像中小于low_in的值在g中被赋值为low_out ,输入图像中大于high_in的值在g中被赋予值为high_out。若 low_in high_ in 或 low_out high_out 使用空矩阵,则默认值是0, 1。Gamma参数()指定了曲线的形状。若gamma1,则图像将变暗。 (2)亮度反转 对图像的像素进行明暗反转,可以突出显示前景部分。基本语法为: g=imcomplement( f ); (3)对数变换 对数变换可以用来压缩图像的动态范围,如用来显示傅里叶变换的频谱。对数变换的形式为:g = c*l

12、og( 1+double(f) );) 2、直方图 直方图可以直观地反应图像中灰度值的分布情况,对于数字图像的亮度矫正和阈值分割有重要意义。一幅数字图像在范围0 , G内共有L个灰度级,其直方图定义为离散函数: H(rk)=nk rk是区间0 ,G 内的第k级亮度,nk是灰度级为rk的图像中的像素个数。归一化直方图为:p( rk )= h( rk )/n = nk/n,其中,n是图像中的像素个数。 MATLAB中直方图绘图函数为imhist,其基本语法为: H=imhist ( f , b ); 其中,f是输入的灰度图像,b是直方图的灰度级数,h是直方图。 3、直方图均衡化 直方图均衡化处理可

13、以明显改善图像的对比度,将图像的直方图从不均匀分布变成均匀分布,使得图像亮度层次更加分明,对于对比度弱的图像,直方图均衡化可以很好地改善显示效果。 假设灰度级为归一化至范围 0 ,1的连续量,p(r)表示图像中灰度级别为r的概率密度函数,则均衡化变换可以表示为: 对于离散灰度级,采用求和的方式来计算积分,则直方图均衡化公式变换为: 0kks?Tr?p(w)dwrs?Trk?p(rj)?j?1j?1njn Matlab中直方图均衡化采用函数histep来实现,语法为: g=histeq ( f, nlev ); 其中,f是输入图像,g是输出图像,nlev是输出图像指定的灰度级,默认值为nlev=

14、256。 4、线性空间滤波和非线性空间滤波 线性空间滤波是将邻域中每个像素与相应的模板系数相乘,然后将结果进行累加,从而得到点(x,y)出的响应。 MATLAB中使用函数imfilter来实现线性空间滤波: g=imfilter(f, w, filtering_mode, boundary_options, size_options); 其中,f是输入图像,w为滤波掩膜,g为滤波结果。滤波类型,有corr和conv两种,边界选项,有replicate、symmertric、circular等选项,大小选项,有full和same两个选项。 通用语法:g=imfilter(f, w, replicate ); 三、实验内容 1、补充程序一,完成基本的图像亮度变换。 2、选择一副图像,对其进行均衡化处理,显示原图像和均衡化后的图像以及直方图(程序二) 3、选择一副图像,加入噪声后对其进行4邻域、8邻域的平滑处理,并显示处理前后的结果,编程实现(程序三)。 6 / 6

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 总结/报告

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