边缘检测 (4)Prewitt边缘算子

Prewitt边缘算子的卷积和如下图所示,图像中的每个像素都用这两个核做卷积,取最大值作为输出,也产生一幅边缘幅度图像。

 边缘检测 (4)Prewitt边缘算子_第1张图片

Prewitt算子在一个方向求微分,而在另一个方向求平均,因而对噪声相对不敏感,有抑制噪声作用。但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。

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

[height width R]=size(I);
for i=2:height-1
    for j=2:width-1
        Dx=[I(i+1,j-1)-I(i-1,j-1)]+[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)]+[I(i,j+1)-I(i,j-1)]+[I(i+1,j+1)-I(i+1,j-1)];
       P(i,j)=sqrt(Dx^2+Dy^2);
     
    end
end
%figure;
%imshow(P,[]);
for i=1:height-1
    for j=1:width-1
        if (P(i,j)<0.5)
            P(i,j)=1;
        else P(i,j)=0;
        end
    end
end
figure;
imshow(P,[]);
边缘检测 (4)Prewitt边缘算子_第2张图片

你可能感兴趣的:(边缘检测 (4)Prewitt边缘算子)