湖南大学脑与认知科学概论实验报告3.docx
- 文档编号:8835349
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:12
- 大小:665.52KB
湖南大学脑与认知科学概论实验报告3.docx
《湖南大学脑与认知科学概论实验报告3.docx》由会员分享,可在线阅读,更多相关《湖南大学脑与认知科学概论实验报告3.docx(12页珍藏版)》请在冰豆网上搜索。
湖南大学脑与认知科学概论实验报告3
课程名称
脑与认知科学概论
实验课时
4
实验项目名称
和编号
CS0502503
同组者姓名
实验目的
1.进一步理解边沿检测的基本原理。
2.掌握对图像边沿检测的基本方法。
3.学习利用Matlab图像工具箱对图像进行边沿检测。
实验环境
硬件:
联想Y50计算机
软件:
WINDOWS7操作系统
应用软件:
MATLAB2014A
实验内容
和原理
实验要求
对边缘检测的要求:
使用Matlab图像处理工具箱中的不同方法对下图的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。
实验步骤
1.打开计算机,启动MATLAB程序;
2.调入数字图像1.bmp,利用MATLAB图像工具箱中已有函数进行编程以实现图像的边缘检测;重点理解edge函数的使用方法,参数的含义,具体如下:
canny算子(sy3_1.m):
不同取值范围的效果。
重点理解canny的意思。
sobel算子(sy3_2.m):
log拉普拉斯算法(sy3_3.m)
imfilter函数的使用(sy3_4.m)
3.调入数字图像2.jpg,检测其边缘(sy3_5.m)
4.显示原图和处理过的图像。
5.记录和整理实验报告
实验原理
调用matlab下的helpedge函数可以看到有关edge的使用说明:
BW=edge(I)采用I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。
BW=edge(I,'sobel')自动选择阈值用Sobel算子进行边缘检测。
BW=edge(I,'sobel',thresh)根据所指定的敏感度阈值thresh,用Sobel算子进行边缘检测,它忽略了所有小于阈值的边缘。
当thresh为空时,自动选择阈值。
BW=edge(I,'sobel',thresh,direction)根据所指定的敏感度阈值thresh,在所指定的方向direction上,用Sobel算子进行边缘检测。
Direction可取的字符串值为horizontal(水平方向)、vertical(垂直方向)或both(两个方向)。
[BW,thresh]=edge(I,'sobel',...)返回阈值
以上标红的语句是edge函数的完整参数实现,而我们在做实验的过程中只需要填写一个或几个即可完成边缘检测。
下面,考虑几个算子的使用方法:
Canny算子,Canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:
好的检测-算法能够尽可能多地标识出图像中的实际边缘。
好的定位-标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。
最小响应-图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。
为了满足这些要求Canny使用了变分法,这是一种寻找满足特定功能的函数的方法。
最优检测使用四个指数函数项的和表示,但是它非常近似于高斯函数的一阶导数。
可以看到,在调用时,thresh阈值可以自己设定,在接下来的实验中,我会自己尝试设定thresh值,进行边缘检测。
Sobel算子,是计算机视觉领域的一种重要处理方法。
主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。
在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。
在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。
LoG算子也就是LaplaceofGaussianfunction(高斯拉普拉斯函数)。
常用于数字图像的边缘提取和二值化。
LoG算子源于D.Marr计算视觉理论中提出的边缘提取思想,即首先对原始图像进行最佳平滑处理,最大程度地抑制噪声,再对平滑后的图像求取边缘。
由于噪声点(灰度与周围点相差很大的像素点)对边缘检测有一定的影响,所以效果更好的边缘检测器是LoG算子,也就是Laplacian-Gauss算子。
它把的Gauss平滑滤波器和Laplacian锐化滤波器结合了起来,先平滑掉噪声,再进行边缘检测,所以效果会更好。
常用的LoG算子是5×5的模板。
Imfilter函数:
用法:
B=imfilter(A,H)
B=imfilter(A,H,option1,option2,...)
或写作g=imfilter(f,w,filtering_mode,boundary_options,size_options)其中,f为输入图像,w为滤波掩模,g为滤波后图像。
filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。
boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。
实验步骤
方法
关键代码
1)canny算子边缘检测:
closeall;clearall;
%authorI1=imread('1.bmp');%读取图像
%考虑canny的参数,本程序通过改变检测阈值进行调试
I1=rgb2gray(I1);
subplot(2,3,1),imshow(I1),title('原始图象1');
I2=edge(I1,'canny');
subplot(2,3,2),imshow(I2),title('canny边缘检测方法-默认阈值');
I3=edge(I1,'canny',[0.002,0.2],1);
subplot(2,3,3),imshow(I3),title('阈值范围[0.002,0.2]');
I4=edge(I1,'canny',[0,0.1],1);
subplot(2,3,4),imshow(I4),title('阈值范围[0,0.1]');
I5=edge(I1,'canny',[0,0.99],1);
subplot(2,3,5),imshow(I5),title('阈值范围[0,0.99]');
I6=edge(I1,'canny',[0,0.01],1);
subplot(2,3,6),imshow(I6),title('阈值范围[0,0.01]');
2)sobel算子边缘检测
closeall;clearall;
%author
I1=imread('1.bmp');%读取图像
I1=rgb2gray(I1);
subplot(2,3,1),imshow(I1),title('原始图象1');
I2=edge(I1,'sobel');
%考虑sobel的参数,有阈值和检测方向,下面更改两种方式进行实验
subplot(2,3,2),imshow(I2),title('sobel边缘检测方法-默认方向');
I4=edge(I1,'sobel','horizontal');
subplot(2,3,3),imshow(I4),title('仅水平方向');
I5=edge(I1,'sobel','vertical');
subplot(2,3,4),imshow(I5),title('仅竖直方向');
I6=edge(I1,'sobel',0.01');
subplot(2,3,5),imshow(I6),title('阈值0.1的sobel算子');
I7=edge(I1,'sobel',0');
subplot(2,3,6),imshow(I7),title('阈值0的sobel算子');
3)log算子边缘检测
closeall;clearall;
%author
I1=imread('1.bmp');%读取图像
I1=rgb2gray(I1);
subplot(2,3,1),imshow(I1),title('原始图象1');
I2=edge(I1,'log');
%考虑log的参数,有阈值和检测方向,下面更改两种方式进行实验
subplot(2,3,2),imshow(I2),title('log边缘检测方法-默认方向');
I4=edge(I1,'log','horizontal');
subplot(2,3,3),imshow(I4),title('仅水平方向');
I5=edge(I1,'log','vertical');
subplot(2,3,4),imshow(I5),title('仅竖直方向');
I6=edge(I1,'log',0.01');
subplot(2,3,5),imshow(I6),title('阈值0.01的log算子');
I7=edge(I1,'log',0');
subplot(2,3,6),imshow(I7),title('阈值0的log算子');
4)matlab在edge函数中给出了很多算子,下面进行对2.jpg进行测试
%一图展示6个算子边缘检测
closeall;clearall;
%author
I1=imread('2.jpg');%读取图像
I1=rgb2gray(I1);
I2=edge(I1,'sobel');%Sobel算子
subplot(2,3,1),imshow(I2),title('Sobel边缘检测方法');
I3=edge(I1,'prewitt');%prewitt算子
subplot(2,3,2),imshow(I3),title('prewitt边缘检测方法');
I4=edge(I1,'roberts');%roberts算子
subplot(2,3,3),imshow(I4),title('roberts边缘检测方法');
I5=edge(I1,'log');%Laplacian-Gaussian算子
subplot(2,3,4),imshow(I5),title('Laplacian-Gaussian边缘检测方法');
I6=edge(I1,'zerocross');%zerecross算子
subplot(2,3,5),imshow(I6),title('过零点边缘检测方法');
I7=edge(I1,'canny');%canny算子
subplot(2,3,6),imshow(I7),title('canny边缘检测方法');
5)不使用算子对2.jpg的检测
clearall;
a=imread('2.jpg');
A=rgb2gray(a);
%author
h1=[1,1,1;0,0,0;-1,-1,-1];%水平方向
h2=[0,1,1;-1,0,1;-1,-1,0];%45度方向
h3=[10-1;10-1;10-1];%竖直方向
h4=[0,-1,-1;1,0,-1;1,1,0];%135度方向
j1=imfilter(A,h1);%对数组滤波,下同
j2=imfilter(A,h2);
j3=imfilter(A,h3);
j4=imfilter(A,h4);
x=uint8(j1);%转化成uint8型
y=uint8(j2);
z=uint8(j3);
m=uint8(j4);
D=imadd(x,y);
D1=imadd(D,z);%进行叠加
D2=imadd(D1,m);
D3=imadd(D1,m);
subplot(321),imshow(A);title('origin')
subplot(322),imshow(j1);title('水平方向')
subplot(323),imshow(j2);title('45度方向')
subplot(324),imshow(j3);title('竖直方向')
subplot(325),imshow(j4);title('135度方向')
subplot(326),imshow(D2);title('叠加后的图像')
测试记录
分析
结论
1)canny算子多种检测结果:
2)sobel算子多种检测结果:
3log算子多种检测结果:
4)对2.jpg的多种算子检测
5)不使用算子对2.jpg的检测结果
分析与总结:
1)canny算子的目标是找到一个最优的边缘检测算法,在对一个陌生图像进行边缘检测时,canny算子是最好的选择。
2)关于canny算子的参数设置,阈值范围设定,[A,B]下限决定了检测的细节是否清晰,上限决定了是否会将大量的次要边缘包括在内,考虑canny算子的参数sigma即标准差,我对sigma进行了第二次设定后(选定值为0.5)进行了又一次检查,发现结果如下:
实验表明,sigma值设定过低也会使边缘范围包括一些不需要的“次要边缘”。
3)sobel算子检测到的边缘过粗,难以实现物体的精确定位,同时阈值不好确定,很难测定出一个低至可以检查所有重要边缘,但不至于包括过多次要边缘的阈值。
4)log算子会先对图像进行噪声处理,再检测边缘,所以在检测2.jpg这种噪声较大的图像时,会受到较大干扰而无法得到边缘图像。
5)不管什么算子,默认的检测方向都是‘both’,而如果我们对边缘检测方向加以设定,如horizontal
或vertical时,则边缘检测会只对我们设定的方向上加以检查,而对另一方向的边缘加以忽略。
小结
实验结论:
这次实验我掌握了一个很好用的算子,即canny算子,在进行图像的边缘检测中,它是一个优秀的自适应的检查方式,另外,log算子可以对噪音较大的图像进行先噪声处理再检测边缘,对于特定的图像,这也是一种优秀的检查方式。
最后,edge函数的参数中的方向可以根据需求自主设定,这样,就可以得到关于图像的仅水平/仅竖直方向上的边缘图像。
心得体会:
这次实验的主要内容是图像的边缘检测,代码较为简单,结论也易于获得,需要反思的是在这个实验中我究竟获得了什么,是否真的在知识层面上提升了自己,我想,这也是以后学习中需要时刻反思的要务。
另外,matlab编程对于信科院的我们尤为重要,自己一定不能放松,借实验的机会加强自己这方面的薄弱点才是根本。
以下由实验教师填写
记事
评议
成绩评定
平时成绩_______实验报告成绩________综合成绩_________
指导教师签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南大学 认知科学 概论 实验 报告