实验二图像直方图分析.docx
- 文档编号:10237321
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:12
- 大小:2MB
实验二图像直方图分析.docx
《实验二图像直方图分析.docx》由会员分享,可在线阅读,更多相关《实验二图像直方图分析.docx(12页珍藏版)》请在冰豆网上搜索。
实验二图像直方图分析
实验二图像直方图分析
一.实验目的及要求
1.了解MATLAB的操作环境和基本功能。
2.掌握MATLAB中图像增强与平滑的函数的使用方法。
3.加深理解图像增强与平滑的算法原理。
二、实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
(可将每段程序保存为一个.m文件)
1.直方图均衡化
clearall;closeall%CleartheMATLABworkspaceofanyvariables
%andcloseopenfigurewindows.
I=imread('pout.tif');%Readsthesampleimages‘pout.tif’,andstoresitin
imshow(I)%anarraynamedI.displaytheimage
figure,imhist(I)%Createahistogramoftheimageanddisplayitin
%anewfigurewindow.
[I2,T]=histeq(I);%Histogramequalization.
figure,imshow(I2)%Displaythenewequalizedimage,I2,inanewfigurewindow.
figure,imhist(I2)%CreateahistogramoftheequalizedimageI2.
figure,plot((0:
255)/255,T);%plotthetransformationcurve.
imwrite(I2,'pout2.png');%WritethenewlyadjustedimageI2toadiskfilenamed
%‘pout2.png’.
imfinfo('pout2.png')%Checkthecontentsofthenewlywrittenfile
基本信息:
图片:
注意:
imadjust()
功能:
调整图像灰度值或颜色映像表,也可实现伽马校正。
语法:
J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)
newmap=imadjust(map,[low_inhigh_in],[low_outhigh_out],gamma)
RGB2=imadjust(RGB1,...)
2.直接灰度变换
clearall;closeall
I=imread('cameraman.tif');
J=imadjust(I,[00.2],[0.51]);
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)
helpimadjust%Displaytheimadjust()functioninformation.
图片:
3.空域平滑滤波(模糊、去噪)
clearall;closeall
I=imread('eight.tif');
h1=ones(3,3)/9;
h2=ones(5,5)/25;
I1=imfilter(I,h1);
I2=imfilter(I,h2);
figure
(1),imshow(I),title('OriginalImage');
figure
(2),imshow(I1),title('FilteredImageWith3*3')
figure(3),imshow(I2),title('FilteredImageWith5*5')
%加入Gaussian噪声
J1=imnoise(I,'gaussian',0,0.005);
%加入椒盐噪声
J2=imnoise(I,'salt&pepper',0.02);
%对J1、J2进行平均值平滑滤波
K1=imfilter(J1,fspecial('average',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,[33]);
K4=medfilt2(J2,[33]);
figure(5);
subplot(2,2,1),imshow(J1),title('gaussian');
subplot(2,2,2),imshow(J2),title('salt&pepper');
subplot(2,2,3),imshow(K3),title('Medianfiltering');
subplot(2,2,4),imshow(K4)
4.空域锐化滤波
clearall;closeall
I=imread('moon.tif');
w=fspecial('laplacian',0)
w8=[1,1,1;1,-8,1;1,1,1]
I1=imfilter(I,w,'replicate');
figure
(1);imshow(I),title('OriginalImage');
figure
(2),imshow(I1),title('LaplacianImage');
f=im2double(I);
f1=imfilter(f,w,'replicate');
figure(3),imshow(f1,[]),title('LaplacianImage');
f2=imfilter(f,w8,'replicate');
f4=f-f1;
f8=f-f2;
figure(4),imshow(f4);
figure(5),imshow(f8);
(二)采用MATLAB底层函数编程实现
1.灰度变换之动态范围扩展
假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],则线性变换可表示为:
用MATLAB底层函数编程实现上述变换函数。
观察图像‘pout.tif’的灰度直方图,选择合适的参数[a,b]、[c,d]对图像‘pout.tif’进行灰度变换,以获得满意的视觉效果。
程序代码:
图片:
2.非锐化掩蔽和高斯滤波
从原图像中减去其非锐化(平滑过的)图像的过程称为非锐化掩蔽,其基本步骤为:
⑴对原图像进行平滑滤波得到模糊图像
;
⑵从原图像中减去模糊图像,产生的差值图像称为模板
;
⑶将模板加到原图像上,得到锐化后的图像
。
即,
用MATLAB函数编程实现上述功能。
程序代码:
三、实验设备
1.计算机;
2.MATLAB6.5及以上;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉MATLAB的操作环境和基本功能。
熟悉实验中涉及的有关函数。
3.利用课余时间,用MATLAB底层函数编程实现实验内容
(二)中的灰度线性变换。
4.你能否给出实现样例程序功能的其它方法?
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果。
3.打印出所编写的实验程序。
4.写出本实验的心得体会及意见。
六、实验心得
本次实验直接实验指导书上的步骤,将程序敲进MATLAB中,就可以获得实验结果图。
对于底层函数编程还是需要自己思考,感觉比较困难,在同学们的帮助下最后也出来实验结果,感觉很开心。
通过本次实验让我掌握了很多知识,了解了MATLAB的操作环境和基本功能并加深了理解图像增强与平滑的算法原理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 图像直方图分析 实验 图像 直方图 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)