应用梯度算子的边缘检测试验.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用梯度算子的边缘检测试验

应用梯度算子的边缘检测试验1 Roberts算子1.1实验结果 a实验原图b用Roberts模板滤波得到的主对角线方向上的分量c用Roberts模板滤波得到的副对角线方向上的分量d梯度图像[a;b;c;d]1.2实验结果分析实验结果:a图是试验中要处理的原图。b图是a图用Roberts模板滤波得到的a图在主对角线方向上的分量。c图是a图用Roberts模板滤波得到的a图在副对角线方向上的分量。d图是b图和c图求和得到的图像。对结果的观察:对比b,c两图和a图可以看出a图中两侧灰度值变化明显的边缘在b,c图中有较高的亮度。而原图中大片的亮块和大片的暗块在b,c图中的亮度基本相近。拿b图和c图作比较可以发现a图中有些边缘在b图中很明显,有些边缘在c图中很明显。明显的例子是门上面的三角形的斜边,在b图中是左边的边亮,右边的边暗,在c图中则恰好相反。而从d图中可以看出水平方向上的边缘更加亮。对观察结果的分析:这是因为Roberts算子的思想是把梯度向量分解为沿主对角线和副对角线两个方向的向量。通过求出主对角线和副对角线方向的向量大小来得到梯度向量的值。所以[-1 0; 0 1]这个模板用来近似得到主对角线方向上的偏导;[0 -1;1 0]用来近似得到副对角线上的偏导。所以b图呈现的是沿主对角线方向上两侧灰度有变化的边缘,c图呈现的是沿副对角线方向上两侧灰度有变化的边缘。2 Prewitt算子2.1实验结果b,用Prewitt模板滤波得到的x方向上的分量c ,用Prewitt模板滤波得到的y方向上的分量 d梯度图像[a;b;c;d]2.2实验结果分析实验结果:b图是a图用prewitt模板滤波得到的a图在x方向上的分量。c图是a图用prewitt模板滤波得到的a图在y方向上的分量。d图是b图和c图求和得到的图像。对结果的观察:对比b图和c图可以看出b图中屋顶的瓦片、砖块的水平接缝和窗户的水平线段亮度比起其他方向的边缘要强得多,而c图中的竖直线段亮度比其他边缘要强的多。而从d图中可以看出沿副对角线方向上的边缘更加亮。明显的例子就是门上面的三角形的斜边,可以看出沿副对角线方向的边缘更加亮。对观察结果的分析:这是因为Prewitt算子的思想是把梯度向量分解为水平和竖直两个方向的向量。通过求出水平和竖直方向的向量大小来得到梯度向量的值。所以[-1 -1 -1; 0 0 0; 1 1 1]这个模板用来近似得到水平方向上的偏导;[-1 0 1;-1 0 1; -1 0 1]用来近似得到竖直方向上的偏导。所以b图呈现的是沿水平方向上两侧灰度有变化的边缘,c图呈现的是沿竖直方向上两侧灰度有变化的边缘。3 Sobel算子3.1实验结果b,用Sobel模板滤波得到的x方向上的分量c ,用Sobel模板滤波得到的y方向上的分量d梯度图像[b;c;d]3.2实验结果分析实验结果:b图是a图用Sobel模板滤波得到的a图在x方向上的分量。c图是a图用Sobel模板滤波得到的a图在y方向上的分量。d图是b图和c图求和得到的图像。对结果的观察:对比b图和c图可以看出b图中屋顶的瓦片、砖块的水平接缝和窗户的水平线段亮度比起其他方向的边缘要强得多,而c图中的竖直线段亮度比其他边缘要强的多。对比d图与2.1中的d图,我们可以看出两幅图很相似,肉眼很难区分出两幅图的不同。所以我们可以认为Prewitt算子与Sobel算子的处理效果一样好。但是其实Sobel有一个优势,就是它能够较好的抑制噪声。实验代码以下代码可以直接用来进行Prewitt算子的边缘检测。如需应用其他算子只需要更改注释部分即可。I=imread(10.16a.tif);I=double(I);[M,N]=size(I);I1=zeros(M,N);I2=zeros(M,N);for i=1:M for j=1:N if i==1||j==1||i==M||j==N I2(i,j)=I(i,j); continue; end %使用[-1 -1 -1; 0 0 0; 1 1 1]模板对原图进行滤波后的结果。 I1(i,j)=(-1)*I(i-1,j-1)-I(i-1,j)-1*I(i-1,j+1)+0*I(i,j-1)+0*I(i,j)+0*I(i,j+1)+I(i+1,j-1)+I(i+1,j)+I(i+1,j+1); %使用[-1 0 1; -1 0 1; -1 0 1]模板对原图进行滤波后的结果 I2(i,j)=(-1)*I(i-1,j-1)+0*I(i-1,j)+I(i-1,j+1)-I(i,j-1)+0*I(i,j)+I(i,j

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档