sobel算子

function d=sobel(x,n,dir)
d=x;
if dir==1
operator=[1,2,1;0,0,0;-1,-2,-1];
else
operator=[1,0,-1;2,0,-2;1,0,-1]
end
[width,height]=size(x);
for ii=1:width-(n-1)
    for jj=1:height-(n-1)
    tmp=x(ii:ii+n-1,jj:jj+n-1).*operator;
    p=sum(sum(tmp));
    d(ii+(n-1)/2,jj+(n-1)/2)=p;
    end

end


%============================================================================================================
%author:王同乐
%date:2016/10/30
img=imread('lena.png');
img=rgb2gray(img);
img=im2double(img);%输入图像类型为uint8,将其转换为double类型进行运算
%=====================================sobel算子
subplot(1,3,1);imshow(img);title('原图');
subplot(1,3,2);imshow(sobel(img,3,1));title('soble提取垂直边缘后的图像')
subplot(1,3,3);imshow(sobel(img,3,2));title('sobel提取水平边缘后的图像');





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值