图像处理实验副本精品版.docx
- 文档编号:27411316
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:22
- 大小:764KB
图像处理实验副本精品版.docx
《图像处理实验副本精品版.docx》由会员分享,可在线阅读,更多相关《图像处理实验副本精品版.docx(22页珍藏版)》请在冰豆网上搜索。
图像处理实验副本精品版
信息科学与工程学院
实验报告
课程名称:
图像处理
专业:
电子信息工程
班级:
电信(DB)1101
学号:
201112135012
姓名:
刘小飞
指导老师:
实验一:
图像直方图处理及灰度变换
实验目的:
1.掌握读、写、显示图像的基本方法。
2.掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。
3.掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。
实验内容:
1.读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。
2.完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。
3.完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。
实验步骤:
1.熟悉MATLAB语言中对图像数据读取,显示等基本函数
1)文件读取与信息显示:
loadtrees;
[X,map]=imread('forest.tif');
subimage(X,map);
I=imread('forest.tif');
imshow(I);
imfinfo('forest.tif');
2)map颜色矩阵的修改
[X,map]=imread('forest.tif');
map1=map+map;
subimage(X,map1);
3)灰度图像的转化
RGB=imread('b747.jpg');
B=rgb2gray(RGB);
2.图像灰度变换处理在图像增强的作用
g1=imadjust(I,[01],[10]);
g2=imcomplement(g1);
g3=im2uint8(mat2gray(log(1+double(I))));
3.绘制图像灰度直方图的方法,对图像进行均衡化处理
1)图像灰度直方图的显示与灰度调整
imhist(B);
J=imadjust(B,[],[01]);
imhist(J);
subimage(J);
2)对B进行直方图均衡化处理,试比较与原图的异同。
I=imread('pout.tif');
[J,T]=histeq(I);
figure,plot((0:
255)/255,T);
3)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。
x1=0:
0.01:
0.125;
x2=0.125:
0.01:
0.75;
x3=0.75:
0.01:
1;
y1=2*x1;
y2=0.25+0.6*(x2-0.125);
y3=0.625+1.5*(x3-0.75);
x=[x1,x2,x3];
y=[y1,y2,y3];
subplot(2,2,4);
plot(x,y);
实验结果分析与讨论:
1.熟悉MATLAB语言中对图像数据读取,显示等基本函数
1)图像文件的读出与图像数据的观察
图1.1真彩色图像与灰度图像显示
ans=
Filename:
'F:
\MATLAB\R2007a\toolbox\images\imdemos\forest.tif'
FileModDate:
'04-Dec-200013:
57:
58'
FileSize:
124888
Format:
'tif'
FormatVersion:
[]
Width:
447
Height:
301
BitDepth:
8
ColorType:
'indexed'
FormatSignature:
[7373420]
ByteOrder:
'little-endian'
NewSubFileType:
0
BitsPerSample:
8
Compression:
'PackBits'
PhotometricInterpretation:
'RGBPalette'
StripOffsets:
[17x1double]
SamplesPerPixel:
1
RowsPerStrip:
18
StripByteCounts:
[17x1double]
XResolution:
72
YResolution:
72
ResolutionUnit:
'Inch'
Colormap:
[256x3double]
PlanarConfiguration:
'Chunky'
TileWidth:
[]
TileLength:
[]
TileOffsets:
[]
TileByteCounts:
[]
Orientation:
1
FillOrder:
1
GrayResponseUnit:
0.0100
MaxSampleValue:
255
MinSampleValue:
0
Thresholding:
1
ImageDescription:
'CarmanahAncientForest,BritishColumbia,Canada'
map颜色矩阵修改后图像颜色的变化
图1.2原图像与map矩阵值增强一倍后的图像
新的颜色矩阵值变成原文件的2倍,图像明显变亮,颜色的R、G、B值增强。
2)图像文件转化为灰度图像
图1.3真彩色图像与转化成的灰度图像
2.图像灰度变换处理在图像增强的作用
图1.4灰度变化增强(图像反转、求补、对数变换)
图中对图像文件进行了基本的灰度变换,包括用式s=L–1–r得到的图像反转,对反转图像的求补,以及对数变换的采用。
3.绘制图像灰度直方图的方法,对图像进行均衡化处理
1)图像灰度及灰度直方图的调整
图1.5灰度范围的调整与直方图显示
在原始图像中,直方图的组成成分集中在高灰度等级(亮)一侧,且图像灰度范围为[0,1],故将灰度值调整到[0,1]间后直方图无明显变化。
类似的,将灰度值调整到[0,0.5]时,整个图像变暗,直方图横向压缩1倍。
2)直方图均衡化
图1.6原图像与灰度直方图均衡化结果
原图像中目标物的灰度主要集中于高亮度部分,而且象素总数较多,所占的灰度等级较少。
经过直方图均衡后,目标物的所占的灰度等级得到扩展,对比度加强,使整个图像得到增强。
数字图像均衡化后,其直方图并非完全均匀分布,这是因为图像的象素个数和灰度等级均为离散值,而且均衡化使灰度级并归。
因此,均衡化后,其直方图并非完全均匀分布。
3)对B进行如图所示的分段线性变换处理
图1.7原图像与灰度直方图均衡化结果
图1.8线性变换函数图
通过在所关心范围内为所有灰度值指定一个较高值,而为其他灰度指定一个较低值,或将所需范围变亮,分段线性变换可提高图像中特定灰度范围的亮度,常用于图像特征值的提取。
这里将原始图像位于[0.125,0.75]间的灰度值调低,放大其余的灰度值,突出显示图像低频域和高频域的部分。
实验小结:
通过本次实验,我学会了用Matlab对图像的基本处理方法,也加深了数字图像处理中灰度,直方图,均衡化等一些基本概念,基本掌握了怎样进行灰度变法,直方图均衡化等操作,虽然这次实验的代码都是在网上找的,但是通过借鉴和学习,我对图像处理产生了浓厚的学习兴趣,我相信在今后的实验中自己会慢慢编写出自己对这方面的相关程序。
实验二:
图像平滑
实验目的:
1.理解图像平滑的概念,掌握噪声模拟和图像平滑滤波函数的使用方法。
2.理解图像均值滤波、中值滤波、高斯滤波的算法原理,了解不同滤波方法的适用场合。
实验内容:
1.对给定的同一幅图像,加上不同强度的高斯噪声,分别使用均值滤波器、中值滤波器、高斯平滑滤波器对加噪后的图像进行滤波处理。
2.对给定的同一幅图像,加上不同强度的椒盐噪声,分别使用均值滤波器、中值滤波器、高斯平滑滤波器对加噪后的图像进行滤波处理。
实验步骤:
1.平滑空间滤波:
1)椒盐噪声和高斯噪声的加入
I=imread('eight.tif');
imshow(I);
J=imnoise(I,'salt&pepper',0.05);%noisedensity=0.05
K=imnoise(I,'gaussian',0.01,0.01);
2)不同的平滑(低通)模板的处理
H=fspecial('sobel');
Sobel=imfilter(I,H,'replicate');
H=fspecial('laplacian',0.4);
lap=imfilter(I,H,'replicate');
H=fspecial('gaussian',[33],0.5);
gaussian=imfilter(I,H,'replicate');
3)不同填充方法的滤波
originalRGB=imread('peppers.png');
h=fspecial('motion',50,45);%motionblurred
filteredRGB=imfilter(originalRGB,h);
boundaryReplicateRGB=imfilter(originalRGB,h,'replicate');
boundary0RGB=imfilter(originalRGB,h,'x');
boundary0RGB=imfilter(originalRGB,h,0);
boundarysymmetricRGB=imfilter(originalRGB,h,'symmetric');
boundarycircularRGB=imfilter(originalRGB,h,'circular');
4)多次均值滤波
J=imnoise(I,'salt&pepper',0.05);
h=fspecial('average');%AveragingFiltering
J1=imfilter(J,h);
fori=1:
10
J1=imfilter(J,h);
end
fori=1:
20
J2=imfilter(J,h);
5)均值、中值滤波
h=fspecial('average');%AveragingFiltering
J1=imfilter(J,h);
J2=medfilt2(J);%MedianFiltering
6)自行设计平滑空间滤波器
domain=[00800;
00800;
88888;
00800;
00800];
K1=ordfilt2(J,5,domain);
2.平滑频域滤波
高斯低通滤波器的设计与滤波
I=imread('test_pattern.tif');
f=double(I);
g=fft2(f);
g=fftshift(g);
[M,N]=size(g);
d0=100;
m=fix(M/2);n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
h=exp(-(d.^2)./(2*(d0^2)));%gaussianfiltertransform
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
实验结果分析与讨论:
1.平滑空间滤波
1)读出eight.tif这幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。
图2.1初始图像及椒盐噪声图像、高斯噪声污染图
2)对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。
图2.2原图像及各类低通滤波处理图像
3)使用函数imfilter时,分别采用不同的填充方法(或边界选项,如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像。
图2.3原图像及运动模糊图像
图2.4函数imfilter各填充方式处理图像
2)运用for循环,将加有椒盐噪声的图像进行10次,20次均值滤波,查看其特点,显示均值处理后的图像。
图2.5椒盐噪声污染图像经10次、20次均值滤波图像
由图2.5可得,20次滤波后的效果明显好于10次滤波,但模糊程度也更强。
3)对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。
图2.6椒盐噪声污染图像及均值、中值滤波图像
从图2.6中可以看出,对于椒盐噪声污染的图像处理,中值滤波效果要明显好于均值滤波。
经均值滤波器处理后的图像比均值滤波器中结果图像更加模糊。
4)设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。
图2.7椒盐噪声污染图像及5*5平滑滤波器掩模
掩模值为w=1/25*[11111;11111;11111;11111;11111]
图2.8椒盐噪声污染图像及5*5平滑滤波器掩模
掩模值为w=[00800;00800;88888;00800;00800]
2.平滑频域滤波
1)高斯低通滤波器
图2.9高斯低通滤波器透视图
图2.10高斯低通滤波器滤波效果(d0=15,30,100)
上图中显示了三种高斯低通滤波器的滤波效果,高斯低通滤波器无法达到有相同截止频率的二阶巴特沃斯低通滤波器的平滑效果,但此时结果图像中无振铃现象产生。
实验小结:
这次实验相比上次,感觉进步了很多,虽然我没有去机房,但私下就在理论上熟悉过均值滤波,中值滤波等基本理论,通过这次实验,我了解了不同滤波方法的适用场合,基本掌握了加入噪声及用各种方法去噪,滤波的相关方法,之前对于均值和中值有些模糊的地方通过这次实验有了更加清晰的认识,还有对不不同噪声,中值滤波器和均值滤波的差异及优缺点,例如,对于椒盐噪声由于其均值不为0,所以用中值滤波效果更好等等,总之,这次实验又学会了很多。
实验三:
图像锐化与边缘检测
实验目的:
1.理解图像锐化的概念,掌握图像锐化的基本算法和函数使用方法。
2.了解边缘检测的算法和用途,掌握边缘检测函数的使用方法,比较不同算子检测边缘的差异。
实验内容:
1.图像锐化。
对给定的同一幅图像,分别Roberts算子、Sobel算子、Laplacian算子惊醒滤波处理。
2.边缘检测。
对给定的同一幅图像,分别使用Sobel、Prewitt、Roberts、LoG和Canny等边缘检测算子进行处理,使用算法的默认参数或适当调整算法参数,将处理结果显示在同一窗口中以便进行比较。
实验步骤:
1.图像锐化
I=imread('girl.bmp');
h=fspecial('sobel');
J=filter2(h,I);
a=min(J(:
));
J1=J+abs(a);
I1=J1/max(J1(:
))*255;
I1=uint8(I1);
J2=abs(J);
I2=J2/max(J2(:
))*255;
I2=uint8(I2);
figure;
subplot(1,3,1),imshow(I),title('原图像');
subplot(1,3,2),imshow(I1),title('锐化滤波、数据加正数后图像');
subplot(1,3,3),imshow(I2),title('锐化滤波、数据取绝对值后图像');
拉普拉斯算子
拉普拉斯高斯算子
Prewitt算子
Sobel算子
I=imread('eight.tif');
subplot(2,2,1),imshow(I),title(‘原图’);
BW1=edge(I,'roberts');
subplot(2,2,2),imshow(BW1),title('用Roberts算子');
BW2=edge(I,'sobel');
subplot(2,2,3),imshow(BW2),title('用Sobel算子');
BW3=edge(I,'log');
subplot(2,2,4),imshow(BW3),title('用拉普拉斯高斯算子');
锐化滤波
2.边缘检测
closeall
clearall
I=imread('wamp.jpg');%读取图像
I1=im2double(I);%将彩图序列变成双精度
I2=rgb2gray(I1);%将彩色图变成灰色图
[thr,sorh,keepapp]=ddencmp('den','wv',I2);
I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp);%小波除噪
I4=medfilt2(I3,[99]);%中值滤波
I5=imresize(I4,0.2,'bicubic');%图像大小
BW1=edge(I5,'sobel');%sobel图像边缘提取
BW2=edge(I5,'roberts');%roberts图像边缘提取
BW3=edge(I5,'prewitt');%prewitt图像边缘提取
BW4=edge(I5,'log');%log图像边缘提取
李政化学口诀总结BW5=edge(I5,'canny');%canny图像边缘提取
教学资源网站h=fspecial('gaussian',5);%高斯滤波
BW6=edge(I5,'zerocross',[],h);%zerocross图像边缘提取
figure;
武汉牛津英语subplot(2,3,1);%图划分为一行三幅图,第一幅图
imshow(I2);%绘图
提出全面改革总目标的会议是subplot(2,3,2);
imshow(BW1);
title('Sobel算子');
新军事变革全面发展始于。
subplot(2,3,3);
智学网教师端下载imshow(BW2);
title('Roberts算子');
subplot(2,3,4);
imshow(BW3);
智能文明答案title('Prewitt算子');
教学工作情况subplot(2,3,5);
探究学习法imshow(BW4);
title('log算子');
subplot(2,3,6);
imshow(BW5);
title('canny算子');
实验结果分析与讨论:
由上边的结果图可以看出,canny边缘检测定位精度较高,图像边缘很清晰,而Sobel算子对噪声具有平滑作用,受噪声影响较小,可提供较为精确的边缘方向信息,但同时也会检测出许多伪边缘,检测到的边缘宽度较粗,边缘位置定位精度不高。
数学打电话教学反思
实验小结:
这次实验做的是图像锐化和边缘检测,说实话,我做实验之前对这两个概念还没有理解,但是通过使用不同算子之后得出的效果图让我对此有了一定的认识,也理解了这些算法的基本原理和优缺点。
三次实验我虽然没有去全,但是通过课下的学习,我对图像处理这门课程有了全新的认识和发现,它并不是我想像中的PS,美图之类的那样透明化,当我们真正研究它的本质原理和算法时,我们一定会发现他的博大精深,这也是我们一直学习下去的根源与动力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像处理实验 副本精品版 图像 处理 实验 副本 精品