数字图像处理实验报告.doc

上传人:文库蛋蛋多 文档编号:2391653 上传时间:2023-02-17 格式:DOC 页数:12 大小:597KB
返回 下载 相关 举报
数字图像处理实验报告.doc_第1页
第1页 / 共12页
数字图像处理实验报告.doc_第2页
第2页 / 共12页
数字图像处理实验报告.doc_第3页
第3页 / 共12页
数字图像处理实验报告.doc_第4页
第4页 / 共12页
数字图像处理实验报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《数字图像处理实验报告.doc》由会员分享,可在线阅读,更多相关《数字图像处理实验报告.doc(12页珍藏版)》请在三一办公上搜索。

1、实验一 图像增强与平滑一实验目的及要求1了解MATLAB的操作环境和基本功能。2掌握MATLAB中图像增强与平滑的函数的使用方法。3加深理解图像增强与平滑的算法原理。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。(可将每段程序保存为一个.m文件)1直方图均衡clear all; close all % Clear the MATLAB workspace of any variables % and close open figure windows。I = imread(pout.tif);

2、 % Reads the sample images pout.tif, and stores it in imshow(I) % an array named I.display the imagefigure, imhist(I) % Create a histogram of the image and display it in % a new figure window.I2,T = histeq(I); % Histogram equalization.figure, imshow(I2) % Display the new equalized image, I2, in a ne

3、w figure window.figure, imhist(I2) % Create a histogram of the equalized image I2.figure,plot(0:255)/255,T); % plot the transformation curve.imwrite (I2, pout2.png); % Write the newly adjusted image I2 to a disk file named% pout2.png.imfinfo(pout2.png) % Check the contents of the newly written file执

4、行结果如下:Command窗口:ans = Filename: pout2.png FileModDate: 29-Apr-2006 15:33:34 FileSize: 36938 Format: png FormatVersion: Width: 240 Height: 291 BitDepth: 8 ColorType: grayscale FormatSignature: 137 80 78 71 13 10 26 10 Colormap: Histogram: InterlaceType: none Transparency: none SimpleTransparencyData:

5、 BackgroundColor: RenderingIntent: Chromaticities: Gamma: XResolution: YResolution: ResolutionUnit: XOffset: YOffset: OffsetUnit: SignificantBits: ImageModTime: 29 Apr 2006 07:33:34 +0000 Title: Author: Description: Copyright: CreationTime: Software: Disclaimer: Warning: Source: Comment: OtherText:

6、上述命令窗口显示的是图片pout2.png的相关信息,包括文件名- pout2.png、文件最后修改时间-29-Apr-2006 15:33:34、文件大小-36938、图片格式-png、格式版本、图片宽度-240、图片高度-291、图像像素值所占用的二进制位数-8、图像类型- grayscale等等。下面是所显示的图像:原图像 原图像的灰度直方图利用直方图均衡化函数处理后的图像 图像被均衡化后的灰度直方图 Matlab均衡化函数的函数曲线图 以.png格式保存后的图像对实验结果分析如下:由以上有关图像对比可以看出,经过均衡化的图像比原图像更富有层次感,对比度更加明显,图像效果也显得更为好一些

7、。从原图像的灰度直方图和变换后的灰度直方图可以看出,均衡化函数拉伸了原图像灰度值较为密集的部分(大约在75-150归一化为0.3-0.6),从而使图像的灰度范围得以扩大,灰度值更加均匀而非原图像的集中分布,所以原图像却是灰蒙蒙的,变换后的图像显得非常清亮。注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。语法:J = imadjust(I,low_in high_in,low_out high_out,gamma)newmap = imadjust(map,low_in high_in,low_out high_out,gamma)RGB2 = imadjust(R

8、GB1,.)2直接灰度变换clear all; close allI = imread(cameraman.tif);J = imadjust(I,0 0.2,0.5 1);imshow(I)figure, imshow(J)X,map = imread(forest.tif);figure,imshow(X,map)I2 = ind2gray(X,map);J2 = imadjust(I2,0.5); figure,imshow(I2)figure, imshow(J2)J3 = imadjust(I2,1.5); figure, imshow(J3)help imadjust % Disp

9、lay the imadjust() function information.程序执行结果如下:Command窗口:IMADJUST Adjust image intensity values or colormap. J = IMADJUST(I,LOW_IN HIGH_IN,LOW_OUT HIGH_OUT,GAMMA) maps the values in intensity image I to new values in J such that values between LOW_IN and HIGH_IN map to values between LOW_OUT and H

10、IGH_OUT. Values below LOW_IN and above HIGH_IN are clipped; that is, values below LOW_IN map to LOW_OUT, and those above HIGH_IN map to HIGH_OUT. You can use an empty matrix () for LOW_IN HIGH_IN or for LOW_OUT HIGH_OUT to specify the default of 0 1. GAMMA specifies the shape of the curve describing

11、 the relationship between the values in I and J. If GAMMA is less than 1, the mapping is weighted toward higher (brighter) output values. If GAMMA is greater than 1, the mapping is weighted toward lower (darker) output values. If you omit the argument, GAMMA defaults to 1 (linear mapping). NEWMAP =

12、IMADJUST(MAP,LOW_IN; HIGH_IN,LOW_OUT; HIGH_OUT,GAMMA) transforms the colormap associated with an indexed image. If LOW_IN, HIGH_IN, LOW_OUT, HIGH_OUT, and GAMMA are scalars, then the same mapping applies to red, green and blue components. Unique mappings for each color component are possible when: L

13、OW_IN and HIGH_IN are both 1-by-3 vectors, LOW_OUT and HIGH_OUT are both 1-by-3 vectors, OR GAMMA is a 1-by-3 vector. The rescaled colormap, NEWMAP, is the same size as MAP. RGB2 = IMADJUST(RGB1,.) performs the adjustment on each image plane (red, green, and blue) of the RGB image RGB1. As with the

14、colormap adjustment, you can apply unique mappings to each plane. Note that if HIGH_OUT LOW_OUT, the output image is reversed, as in a photographic negative. The function STRETCHLIM can be used with IMADJUST to apply an automatically computed contrast stretch. Class Support - For syntaxes that inclu

15、de an input image (rather than a colormap), the input image can be of class uint8, uint16, or double. The output image has the same class as the input image. For syntaxes that include a colormap, the input and output colormaps are of class double. Examples - I = imread(pout.tif); J = imadjust(I,0.3

16、0.7,); imshow(I), figure, imshow(J) RGB1 = imread(flowers.tif); RGB2 = imadjust(RGB1,.2 .3 0; .6 .7 1,); imshow(RGB1), figure, imshow(RGB2) See also BRIGHTEN, HISTEQ, STRETCHLIM.下面是所显示的图像: 原图像 灰度调整后的图像原彩色图像 原灰度图像 参数为0.5的灰度调整函数调整后的结果 参数为1.5的灰度调整函数调整后的结果对实验结果分析如下:通过查看命令窗口所显示的信息,对imadjus有所了解,以来分析函数作用的结

17、果。对于图像cameraman.tif, imadjust共有四个参数,程序中对该图像调整时,默认第四个参数为1,即进行线性变换。函数将0 0.2范围内的灰度对应到0.5 1,其余像素值不变,即0对应0.5,0.2对应1,其余像素值可根据直线方程类推,通过调整,图像中大于0.5的像素值大量增多,而小于0.2的像素经过调整已经没有了,所以整个图像显得比原图像明亮。对图像forest.tif,imadjust的第四个参数分别设置为0.5和1.5.上面已经提到如果第四个参数设置为1,即进行线性变换,而如果小于1则增强低灰度范围,相应的大于1则增强高灰度范围。由上面的第5、6、7幅图可以看出,参数设置

18、为0.5的图像明显比原灰度图像偏亮,而参数设置为1.5的图像与原灰度图像的效果差不多。这是因为,参数设置为0.5时,增强了低灰度值,从而使低灰度值的像素减少,高灰度值的像素增多,从而使图像变亮。而参数设置为1.5时,增强的是高灰度范围,对于低灰度范围没有影响,而且本身高灰度值效果就偏亮,所以函数作用效果有限,所以看上去与原灰度图像效果差不多。3空域平滑滤波(模糊、去噪)clear all; close allI = imread(eight.tif);h1 = ones(3,3) / 9;h2 = ones(5,5) / 25;I1 = imfilter(I,h1);I2 = imfilter

19、(I,h2);figure(1), imshow(I), title(Original Image);figure(2), imshow(I1), title(Filtered Image With 3*3 )figure(3), imshow(I2), title(Filtered Image With 5*5 )J1 = imnoise(I,gaussian,0,0.005); % 加入Gaussian 噪声J2 = imnoise(I,salt & pepper,0.02); % 加入椒盐噪声% 对J1、J2进行平均值平滑滤波K1 = imfilter(J1,fspecial(avera

20、ge,3);K2 = imfilter(J2,fspecial(average,3);figure(4);subplot(2,2,1), imshow(J1) , title(gaussian);subplot(2,2,2), imshow(J2), title(salt & pepper );subplot(2,2,3), imshow(K1), title(average );subplot(2,2,4), imshow(K2);% 对J1、J2进行中值滤波K3 = medfilt2(J1,3 3);K4 = medfilt2(J2,3 3);figure(5);subplot(2,2,1

21、), imshow(J1) , title(gaussian);subplot(2,2,2), imshow(J2), title(salt & pepper );subplot(2,2,3), imshow(K3), title( Median filtering );subplot(2,2,4), imshow(K4)程序执行结果如下:对以上实验结果分析如下: 由于没有添加噪声,所以看不出滤波效果。但是从上图可以看出,滤波后图像有点模糊,而使用5*5的邻域窗口滤波后的图像模糊的更加明显。这是因为,均值滤波采用计算邻域窗口的均值代替自身的像素值来滤波,邻域窗口越大,参与平均计算的像素增多,虽

22、然滤波效果也更为明显,特别是针对颗粒状噪声有很好的滤除效果,但同样也会使图像中物体的像素值产生更大的变化,反映在图像上就是物体显得更加模糊。 对以上实验结果分析如下: 中值滤波采用的是邻域的中值代替像素原来的值,所以原像素值受异常值的影响相对均值滤波要小的多,由中值滤波后的图像可以看出,图像并非像均值滤波那样显得模糊。下面比较一下均值滤波和中值滤波。对于同为3*3邻域窗口,对于椒盐噪声,中值滤波效果要好于均值滤波,而对于高斯噪声两者差不多。对于椒盐噪声,由均值滤波效果可以看出,噪声明显接近背景颜色,有一定滤波效果,如果邻域窗口变成5*5的一定会对噪声起到更好的滤除作用,但负面作用是会使图像变得

23、更加模糊。而中值滤波,由于采用的中值,所以对于颗粒状的物体也可以很好的滤出。而对于高斯噪声,噪声符合一定分布,均值、中值对像素值的作用有限,所以虽然有一定的滤波作用,但并不能彻底消除噪声,可以尝试维纳滤波等其它滤波方法。4空域锐化滤波clear all; close all;I = imread(moon.tif);w=fspecial(laplacian,0),w8=1,1,1;1,-8,1;1,1,1I1= imfilter(I,w, replicate);figure(1); imshow(I), title(Original Image);figure(2), imshow(I1),

24、title(Laplacian Image);f = im2double(I);f1= imfilter(f,w, replicate);figure(3), imshow(f1,), title(Laplacian Image);f2= imfilter(f,w8, replicate);f4 = f-f1;f8 = f-f2;figure(4), imshow(f4);figure(5), imshow(f8); f4=f-f1 f8=f-f2对以上实验结果分析如下:程序中先对原图像采用拉普拉斯算子对原图像进行锐化,然后再将图像像素值转化成double类型,之后再进行拉普拉斯算子和一个自编

25、的算子进行锐化。由上图可以看出,两个拉普拉斯滤波后的图像虽然亮度不一样,但是特征并没有多少差异,这是因为像素值转化为double类型时,像素值进行了相应变化。由于算子本身有滤波作用,而且可以增强图像的边缘轮廓,所以计算f4 = f-f1;f8 = f-f2;然后再显示f4和f8,具体的边缘轮廓细节较原图像效果要好很多。5图像的伪彩色处理密度分割clear all, close allI = imread(ngc4024m.tif);X = grayslice(I,16);imshow(I), title(Original Image)figure, imshow(X,jet(16), titl

26、e(Index Color Image)(二)采用MATLAB底层函数编程实现以下灰度线性变换假定原图像f(x, y)的灰度范围为a, b,希望变换后图像 g(x, y)的灰度范围扩展至c, d,则线性变换可表示为: 用MATLAB底层函数编程实现上述变换函数。观察图像 pout.tif的灰度直方图,选择合适的参数a, b、c, d对图像pout.tif进行灰度变换,以获得满意的视觉效果。 程序代码如下: clear all;close all;clc;I = imread(pout.tif);I=double(I)/255;figure(1),imhist(I)II=1/0.3*(I-0.3

27、);figure(2);subplot(221);imshow(I);title(原图像);subplot(222);imshow(II);title(经线性变换后的图像);subplot(223);imhist(I);title(原图像灰度直方图);subplot(224);imhist(II);title(经线性变换后的图像灰度直方图);原理类似实验内容的第一个,现做简单分析:由原图像的灰度直方图可知,灰度值主要分布在0.3-0.6,将该灰度范围的像素值拉伸到0-1范围内,从而使像素更加均匀的分布,图像更显层次感。变换前后的图像和灰度直方图可以查看上面执行结果所得出的图像。三、实验设备1PIII以上微机;2MATLAB6.5;四、 实验心得及体会 通过这次实验,使我对matlab图像处理工具箱的相关函数有了一定认识,而且对自己的编程以及实验结果分析能力都有了锻炼。从课本到编程再到分析实验结果,我想只有自己切切实实的走,才能对所学知识的理解、运用能力有所提高,而且还能促进以后的学习,增强自信,提高兴趣。

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号