边缘检测(3)Sobel边缘算子

本文详细介绍了Sobel边缘算子的工作原理及其实现过程。通过使用Sobel核对图像进行卷积运算,可以有效地检测出图像中的垂直和水平边缘。此外,还提供了MATLAB代码示例来展示如何实现Sobel算子并生成边缘幅度图像。

Sobel边缘算子的卷积和如图2.2所示,图像中的每个像素都用这两个核做卷积。这两个核分别对垂直边缘和水平边缘响应最大,两个卷积的最大值作为该点的输出位。运算结果是一幅边缘幅度图像。

 

Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。

I=imread('lena.bmp');
I=im2double(I);
figure;
imshow(I);title('org img');

[height width R]=size(I);

%Dx=[-1 -2 -1
    %0   0  0
    %1   2  1];

%Dy=[-1 0 1
    %-2 0 2 
    %-1 0 1];

for i=2:height-1
    for j=2:width-1
        Dx=[I(i+1,j-1)-I(i-1,j-1)]+2*[I(i+1,j)-I(i-1,j)]+[I(i+1,j+1)-I(i-1,j+1)];
        Dy=[I(i-1,j+1)-I(i-1,j-1)]+2*[I(i,j+1)-I(i,j-1)]+[I(i+1,j+1)-I(i+1,j-1)];
       S(i,j)=sqrt(Dx^2+Dy^2);
     
    end
end
figure;
imshow(S);
for i=1:255
    for j=1:255
       if (S(i,j)<1)
            S(i,j)=1;
        else S(i,j)=0;
        end
    end
end
figure;
imshow(S,[]);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值