matlab数字图像处理复习(四)边缘提取

边缘提取

prewitt算子

function newGrayPic = myprewitt(grayPic, a)


[m,n]=size(grayPic);

newGrayPic=grayPic;

 PrewittThreshold=a;%设定阈值

for j=2:m-1 %进行边界提取

    for k=2:n-1

        PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1));

        if(PrewittNum > PrewittThreshold)

            newGrayPic(j,k)=255;

        else

            newGrayPic(j,k)=0;

        end

    end

end



在这里插入图片描述

roberts算子

function  newGrayPic = myroberts (grayPic, a)
[m,n]=size(grayPic);
newGrayPic=grayPic;
robertThreshold=a;

for j=1:m-1

    for k=1:n-1

        robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1));

        if(robertsNum > robertThreshold)

            newGrayPic(j,k)=255;

        else

            newGrayPic(j,k)=0;

        end

    end

end

BW2 = newGrayPic;

在这里插入图片描述
sobel算子

function newGrayPic = mysobel2 (grayPic,a)

[m,n]=size(grayPic);

newGrayPic=grayPic;


sobelThreshold=a;

for j=2:m-1

    for k=2:n-1

        sobelNum=abs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1));

        if(sobelNum > sobelThreshold)

            newGrayPic(j,k)=255;

        else

            newGrayPic(j,k)=0;

        end

    end

end


在这里插入图片描述

laplacian算子
function newGrayPic = mylaplacian(grayPic,LaplacianThreshold)

[m,n]=size(grayPic);

newGrayPic=grayPic;

for j=2:m-1 %进行边界提取

for k=2:n-1

    LaplacianNum=abs(4*grayPic(j,k)-grayPic(j-1,k)-grayPic(j+1,k)-grayPic(j,k+1)-grayPic(j,k-1));

    if(LaplacianNum > LaplacianThreshold)

        newGrayPic(j,k)=255;

    else

        newGrayPic(j,k)=0;

    end

end

end

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值