《数字图像处理》实验指导书.docx
- 文档编号:30647866
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:35
- 大小:169.37KB
《数字图像处理》实验指导书.docx
《《数字图像处理》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数字图像处理》实验指导书.docx(35页珍藏版)》请在冰豆网上搜索。
《数字图像处理》实验指导书
《数字图像处理》
实验指导书
山东建筑大学
信息与电气工程学院
2013年3月
目录
实验守则……………………………………………………………………1
实验一图像增强与平滑…………………………………………………2
实验二频域变换……………………………………………………………6
实验三图像形态学处理………………………………………………9
实验四图像分割与边缘检测……………………………………………12
实验五图像的几何变换………………………………………………14
实验六数字图像处理应用………………………………………16
附录1MATLAB简介……………………………………………………17
附录2实验报告范例---LOG滤波器提取边缘………………………19
实验守则
为了加强实验室管理,提高实验教学质量,培养学生理论联系实际的学风,提高实际操作技能,确保人身和设备的安全,特制定如下守则:
1.实验前要认真预习,了解实验目的、实验原理、实验线路、实验步骤及欲测的物理量。
熟悉和实验有关的仪器设备的用途、使用方法及注意事项。
能回答指导教师的提问。
2.每个实验小组要选出组长1名,实验时要认真分工,轮流当记录员和操作者,以便每个人都能得到较全面的训练。
实验线路接好后,各组学生要自行检查,然后请指导教师检查,经检查无误后方可接通电源。
改接线路必须先断开电源,以免触电及损坏仪表。
改接后的线路仍需经教师检查。
3.实验时应听从教师指导,严格按实验步骤进行,如实记录实验数据,积极思考和分析实验中发生的现象。
实验中如遇事故应立即关断电源、保持现场,报告指导教师及时处理。
如有损坏仪器或器件,要填写事故原因及报损单。
4.实验完毕应立即关断电源,把实验记录交指导教师检查合格后方可拆除线路。
如发现实验记录有不当和错误之外,应立即重作。
要把所有仪器、仪表、工具、导线整理好。
经指导教师清点后方可离开实验室。
5.要爱护公物。
实验室所有的仪表、工具、器件等一律不得擅自带出。
实验中如需更换仪器、仪表、工具、器件等,必须经指导教师同意。
不得擅自更换或乱拿他组物品。
未经允许,不得擅自拆卸实验用的仪器、设备。
6.实验时要严肃认真,讲究文明、礼貌,要保持安静和室内整洁,不随地吐痰和乱抛杂物。
实验完毕要打扫实验室卫生。
7.书写实验报告时,语言要力求简练,书写应端正,作图应正规。
实验报告一般应包括以下内容:
(1)实验目的;所用仪器、仪表、器件的名称及规格型号;实验电路原理图。
(2)实验项目(指导书中的详细内容不必抄录);测试记录表;波形图及现象记录。
(3)实验数据整理,计算后的结果、及根据实验数据绘制的曲线。
(4)实验分析,应包括与理论计算值的比较、现象分析。
8.关于实验考核:
学生在实验课中的实际技能水平与实验报告的质量是评定本课程实验成绩的标准。
因各种原因缺做实验和缺交实验报告者,实验成绩要受影响。
实验一图像增强与平滑
一.实验目的及要求
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.PIII以上微机;
2.MATLAB6.5及以上;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉MATLAB的操作环境和基本功能。
熟悉实验中涉及的有关函数。
3.利用课余时间,用MATLAB底层函数编程实现实验内容
(二)中的灰度线性变换。
4.你能否给出实现样例程序功能的其它方法?
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;
3.打印出所编写的实验程序。
4.写出本实验的心得体会及意见。
实验二频率域处理
一.实验目的及要求
1.利用MATLAB研究数字图像的傅立叶变换、离散余弦变换等频域变换算法;
2.掌握MATLAB频域变换函数的使用方法;
3.了频域变换的基本应用。
二、实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.傅立叶变换
(1)简单人工二值图像
clearall;
closeall;
clc;
f=zeros(50,50);
f(15:
35,23:
28)=1;
figure
(1),imshow(f,'notruesize')
F=fft2(f,128,128);
F1=fftshift(F);
figure
(2),imshow(log(abs(F1)),[-15]);colormap(gray);colorbar
figure(3),mesh(1:
128,1:
128,abs(F1));colormap(gray);colorbar
F2=fft2(imrotate(f,90),128,128);
F3=fftshift(F2);
figure(4),imshow(imrotate(f,90),'notruesize')
figure(5),imshow(log(abs(F3)),[-15]);colormap(gray);colorbar
figure(6),mesh(1:
128,1:
128,abs(F3));colormap(gray);colorbar
(2)Laplacian图像锐化增强的频域实现
clearall;
closeall;
clc;
I=imread('moon.tif');
I=im2double(I);%标定到[0-1]
imshow(I);
MN=size(I);
PQ=2*MN;
F=fft2(I,PQ
(1),PQ
(2));
F1=abs(F);
figure,imshow(F1,[]);
F2=log(1+abs(F));
figure,imshow(F2,[]);
F3=log(1+abs(fftshift(F)));
figure,imshow(F3,[]);
h=fspecial('laplacian');
H=fft2(h,PQ
(1),PQ
(2));
H=fftshift(H);
H1=log(1+abs(H));
figure,imshow(H1,[]);
%calculatethelaplacianimage
G=fftshift(F).*H;
g=real(ifft2(ifftshift(G)));
g1=imcrop(g,[1,1,MN
(2)-1,MN
(1)-1]);
figure,imshow(mat2gray(g1),[]);
%calculatetheenhancedimageusinglaplacianoperator
g2=g1/max(max(abs(g1)));%标定到[0-1]
G=I-g2;
figure,imshow(G);
(3)频率域平滑滤波
closeall;
clearall;
clc;
I=imread('text.png');
imshow(I);
MN=size(I);
PQ=2*MN;
F=fft2(I,PQ
(1),PQ
(2));
h=fspecial('average');
H=fft2(h,PQ
(1),PQ
(2));
I1=real(ifft2(F.*H));
G=imcrop(I1,[1,1,MN
(2)-1,MN
(1)-1]);
figure,imshow(G,[]);%Display,scalingdatatoappropriaterange.
2.离散余弦变换(DCT)
%对cameraman.tif图像的离散余弦变换及逆变换重建
clearall,closeall
f=imread('cameraman.tif');%读一幅cameraman.tif
imshow(f);
F=dct2(f);%做余弦变换
AbsFT=abs(F);
figure,imshow(log(AbsFT));
FinvT=idct2(F);%做余弦反变换
figure,imshow(mat2gray(FinvT));
%仅保留余弦变换频谱的左上角50*50个数据,然后做余弦反变换,观察输出图像
F1=F;
[m,n]=size(F1);
F1(50:
m,50:
n)=0;
AbsFT=abs(F1);
figure,imshow(log(AbsFT));
FinvT=idct2(F1);%做余弦反变换
figure,imshow(mat2gray(FinvT));
(二)采用Matlab编程实现“频率域钝化模板、高提升滤波和高频强调滤波”
三、实验设备
1.PIII以上微机;
2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉实验中涉及的有关函数。
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;
3.打印出所编写的实验程序。
4.写出本实验的心得体会及意见。
实验三图像形态学处理
一.实验目的及要求
1.利用MATLAB研究二值形态学图像处理常用算法;
2.掌握MATLAB形态学图像处理基本操作函数的使用方法;
3.了了解形态学的基本应用。
二、实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.膨胀与腐蚀(DilationandErosion)
(1)对简单二值图像进行膨胀与腐蚀
clearall,closeall
BW=zeros(9,10);
BW(4:
6,4:
7)=1;
BW
SE=strel('square',3)
BW1=imdilate(BW,SE)
BW2=imerode(BW,SE)
figure
(1),
subplot(1,2,1),imshow(BW,'notruesize'),title('OriginalImage');
subplot(1,2,2),imshow(BW1,'notruesize'),title('DilatedImage');
figure
(2),
subplot(1,2,1),imshow(BW,'notruesize'),title('OriginalImage');
subplot(1,2,2),imshow(BW2,'notruesize'),title('ErodedImage');
(2)对文本图像进行膨胀与腐蚀
clearall,closeall
I=imread('Fig0907(a)(text_gaps_1_and_2_pixels).tif');
%说明:
上述图片可从Gonzalez网站下载
SE=[0,1,0;1,1,1;0,1,0]
BW1=imdilate(I,SE);
BW2=imerode(I,SE);
figure
(1),
subplot(1,2,1),imshow(I,'notruesize'),title('OriginalImage');
subplot(1,2,2),imshow(BW1,'notruesize'),title('DilatedImage');
figure
(2),
subplot(1,2,1),imshow(I,'notruesize'),title('OriginalImage');
subplot(1,2,2),imshow(BW2,'notruesize'),title('ErodedImage');
2.开、闭操作(OpeningandClosing)
clearall,closeall;
I=imread('Fig0911(a)(noisy_fingerprint).tif');
%说明:
上述图片可从Gonzalez网站下载
se=strel('square',3);
bw1=imopen(I,se);
subplot(1,2,1),imshow(I),title('OriginalImage')
subplot(1,2,2),imshow(bw1),title('Afteropening')
bw2=imclose(I,se);
figure;
subplot(1,2,1),imshow(I,'truesize'),title('OriginalImage')
subplot(1,2,2),imshow(bw2,'truesize'),title('AfterClosing')
说明:
改变结构元素形状、大小,重做上述实验,比较实验结果,分析结构元素对运算的影响;
3.细化与骨架抽取
clearall,closeall
BW=~imread('logo.tif');
BW1=bwmorph(BW,'thin',Inf);
BW2=bwmorph(BW,'skel',Inf);
subplot(1,3,1),imshow(BW),title('OriginalImage');
subplot(1,3,2),imshow(BW1),title('ThinnedImage');
subplot(1,3,3),imshow(BW2),title('Imageskeleton');
%查看bwmorph函数使用说明
helpbwmorph
(二)用MATLAB数学形态学函数编程实现
1.编程实现作业9.17的形态学滤波任务(图片可从Gonzalez网站下载)。
2.编程实现作业9.34的形态学纹理分割任务(图片可从Gonzalez网站下载)。
FigP0917(noisy_rectangle).tifFigP0934(blobs_in_circular_arrangement).tif
三、实验设备
1.PIII以上微机;
2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉实验中涉及的有关函数。
3.利用课余时间,采用MATLAB函数编程实现实验内容
(二)。
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;
3.打印出所编写的实验程序。
4.写出本实验的心得体会及意见。
实验四图像分割与边缘检测
一.实验目的及要求
1.利用MATLAB研究图像分割与边缘检测的常用算法原理;
2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;
3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。
二、实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.图像阈值分割
clearall,closeall;
I=imread('rice.tif');
figure
(1),imshow(I)
f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像处理 数字图像 处理 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)