湖南大学脑与认知科学概论实验报告3详解.docx

上传人:b****7 文档编号:10678763 上传时间:2023-02-22 格式:DOCX 页数:12 大小:116.34KB
下载 相关 举报
湖南大学脑与认知科学概论实验报告3详解.docx_第1页
第1页 / 共12页
湖南大学脑与认知科学概论实验报告3详解.docx_第2页
第2页 / 共12页
湖南大学脑与认知科学概论实验报告3详解.docx_第3页
第3页 / 共12页
湖南大学脑与认知科学概论实验报告3详解.docx_第4页
第4页 / 共12页
湖南大学脑与认知科学概论实验报告3详解.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

湖南大学脑与认知科学概论实验报告3详解.docx

《湖南大学脑与认知科学概论实验报告3详解.docx》由会员分享,可在线阅读,更多相关《湖南大学脑与认知科学概论实验报告3详解.docx(12页珍藏版)》请在冰豆网上搜索。

湖南大学脑与认知科学概论实验报告3详解.docx

湖南大学脑与认知科学概论实验报告3详解

课程名称

脑与认知科学概论

实验课时

4

实验项目名称和编号

CS0502503

同组者姓名

实验目的

1进一步理解边沿检测的基本原理。

2•掌握对图像边沿检测的基本方法。

3•学习利用Matlab图像工具箱对图像进行边沿检测。

实验环境

硬件:

联想Y50计算机

软件:

WINDOWS操作系统

应用软件:

MATLAB2014A

实验内容和原理

实验要求

对边缘检测的要求:

使用Matlab图像处理工具箱中的不冋方法对下图的边缘进行提取;注意观察

不冋操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。

实验步骤

1打开计算机,启动MATLA龍序;

2.调入数字图像1.bmp,利用MATLABi像工具箱中已有函数进行编程以实现图像的边缘检测;重点理解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(l)采用1作为它的输入,并返回一个与1相同大小的二值化图像BW在函数检测到边缘的

地方为1,其他地方为0。

BW=edge(l,'sobel')自动选择阈值用Sobel算子进行边缘检测。

BW=edge(l,'sobel',thresh)根据所指定的敏感度阈值thresh,用Sobel算子进行边缘检测,它忽

略了所有小于阈值的边缘。

当thresh为空时,自动选择阈值。

BW=edge(I,'sobel',thresh,direction)根据所指定的敏感度阈值thresh,在所指定的方向

direction上,用Sobel算子进行边缘检测。

Direction可取的字符串值为horizontal(水平方向)、

vertical(垂直方向)或both(两个方向)。

[BW,thresh]=edge(l,'sobel',...)返回阈值

以上标红的语句是edge函数的完整参数实现,而我们在做实验的过程中只需要填写一个或几个即可完成边缘检测。

下面,考虑几个算子的使用方法:

Canny算子,Canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:

好的检测-算法能够尽可能多地标识出图像中的实际边缘。

好的定位-标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。

最小响应-图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。

为了满足这些要求Canny使用了变分法,这是一种寻找满足特定功能的函数的方法。

最优检测使用四个指数函数项的和表示,但是它非常近似于高斯函数的一阶导数。

边氽检测是一种比较新的辿缰检则算子,具有很好的边塢监测性能,在圉樣处理中得到了越来拯广泛的应用。

它依据圏像边煨检测最优;隹则设计。

込泌燼楡测算法:

(1)首先用烈高斯遥逋複扳魅行卷稅以消除噪靑

(2)利用导教空艸到图慢灰度地沿着两个右向的偏导教(0斗*q),弄求出梯摩的大小,

冏=阳心

⑷一且知道了瞒的方向,就可以把边逢的棵廣方向大致分为四种;水平、姿直、4艰方向、1节播方向沪通过梯度的方向,就可以找到这个橡章梯度方向的邻接像養。

(5)遍历圏橡,若某个像耒的页度值与其梯度方向上前后两个愎薰的换度值相比不是最大的,那么这个橡臺值養拘山即不呈边煖v

(B)使用累计宜方图计算两个阈值,大于裔阈值的一定是边曝,小于低阈值的一定不是边壕,介于之间的,看返个

像素的邻接像素中肓没有超过葛阈值的迩家橡素,如果有的话那么它就是边壕了,若则它就不是谨康。

可以看到,在调用时,thresh阈值可以自己设定,在接下来的实验中,我会自己尝试设定thresh值,

进行边缘检测。

Sobel算子,是计算机视觉领域的一种重要处理方法。

主要用于获得数字图像的一阶梯度,常见的应用

和物理意义是边缘检测。

在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。

在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。

SotaM子是憑波算子的形式来提取迤“X,丫方向各用一个檯板,两个榄板组合起来构感1个梯度茸子QK方向摸丽寸垂

直边爆嶷响最夫,丫方向模板对水平边塚融向最犬b

0-1

-1

LoG算子也就是LaplaceofGaussianfunction(高斯拉普拉斯函数)。

常用于数字图像的边缘提取和二值化。

LoG算子源于D.Marr计算视觉理论中提出的边缘提取思想,即首先对原始图像进行最佳平滑处理,最大程度地抑制噪声,再对平滑后的图像求取边缘。

由于噪声点(灰度与周围点相差很大的像素点)对边缘检测有一定的影响,所以效果更好的边缘检测

器是LoG算子,也就是Laplacian-Gauss算子。

它把的Gauss平滑滤波器和Laplacian锐化滤波器结合了起来,先平滑掉噪声,再进行边缘检测,所以效果会更好。

常用的LoG算子是5X5的模板。

拉普谊斯高斯算子是一种二阶导数算子,将在逖杲处产生一个陡耀的窸交罠。

前面介錯的几种梯度法具有方向性・苹能对各种走向的逖泉鄒具育相同的增强議果、fB>LapliC19nM子是各向同性的,能对任何未向的霁绒和线築进行锐北,无方向性亠这是拉晉也斯聲子区别于其也算法的最犬优点。

对一个连续,它在位畫(/<

&fQ1f

/询啦普扭斯算子走文如下:

/=—4-+—4-mch*

在鬥橡边媒檎测中,为了运箕方便,函埶的拉晋竝斯高斯箕子也是借助檯板来实现的•其桓扳有一个基本要求:

檯板中心的至数为正,其余相邻系数为负,所有轴的和应该为寒*

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用于指定在滤波过程中是使用“相关”还是“卷

积”。

boundaryoptions用于处理边界充零问题,边界的大小由滤波器的大小确定。

1)canny算子边缘检测:

closeall;clearall;

%authorI1=imread('1.bmp');%读取图像

%考虑canny的参数,本程序通过改变检测阈值进行调试11=rgb2gray(l1);

3)log算子边缘检测

closeall;clearall;

%author

I1=imread('1.bmp');%读取图像

11=rgb2gray(l1);

subplot(2,3,1),imshow(l1),title('原始图象1');

I2=edge(l1,'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(l5),title('仅竖直方向');

I6=edge(l1,'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(l2),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(l5),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

j仁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);

D仁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('45subplot(324),imshow(j3);title('subplot(325),imshow(j4);title('135subplot(326),imshow(D2);title('

度方向

F同

水平方向')度方向')

竖直方向')度方向')叠加后的图像’)

1)canny算子多种检测结果:

测试记录分析结论

匣射国眾I

聞■建圖fwzqz]

Ifl■范因ID.DI]

rtiilSLiroo^i

词皆克曲"仙]

 

2)sobel算子多种检测结果:

 

噩1E:

■列曰

Sii1的m-1"?

 

 

3log算子多种检测结果:

個静:

平角问

硯(1・.州旳网■干

SttwKiBoWr

 

4)对2.jpg的多种算子检测

 

5)不使用算子对2.jpg的检测结果

unyri

常$厘方向

墜■方向

7

 

分析与总结:

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编程对于信科院的我们尤为重要,自己一疋不能放松,借头验的机会加强自己这方面的薄弱点才是根本。

以下由实验教师填写

事评议

成绩评

平时成绩实验报告成绩综合成绩

指导教师签名:

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1