MATLAB sobel 锐化(边缘检测)

MATLAB sobel 锐化(边缘检测)

MATLAB sobel 锐化(边缘检测)_第1张图片
例题
MATLAB sobel 锐化(边缘检测)_第2张图片

%例题验证
clc
clear
f=[3 3 3 3 3
    3 8 7 6 3
    3 6 0 5 3
    3 7 8 4 3
    3 8 3 3 3]
[L,R]=size(f);
g=zeros(L,R);
for i=2:L-1
    for j=2:R-1
        dx=((f(i+1,j-1)-f(i-1,j-1))+2*(f(i+1,j)-f(i-1,j))+(f(i+1,j+1)-f(i-1,j+1)))^2;
        dy=((f(i-1,j+1)-f(i-1,j-1))+2*(f(i,j+1)-f(i,j-1))+(f(i+1,j+1)-f(i+1,j-1)))^2;
        dt=double(dx+dy);
        g(i,j)=sqrt(dt);
    end
end
uint8(g)

验证结果
MATLAB sobel 锐化(边缘检测)_第3张图片
图片测试

clear
clc
I=imread('1.jpg');
I=rgb2gray(I);
[L,R]=size(I);

Y=double(I);
for i=2:L-1
    for j=2:R-1
        dx=(Y(i+1,j-1)-Y(i-1,j-1))+2*(Y(i+1,j)-Y(i-1,j))+(Y(i+1,j+1)-Y(i-1,j+1));
        dy=(Y(i-1,j+1)-Y(i-1,j-1))+2*(Y(i,j+1)-Y(i,j-1))+(Y(i+1,j+1)-Y(i+1,j-1));
        g(i,j)=sqrt(dx^2+dy^2);
    end
end

figure(1)
subplot(1,2,1)
imshow(I);
title('原图')

subplot(1,2,2)
imshow(uint8(g));
title('My Sobel')

效果
MATLAB sobel 锐化(边缘检测)_第4张图片

你可能感兴趣的:(数字图像处理基础,sobel,matlab,锐化,边缘检测,图像处理)