sobel.m

来自「对图像进行多种分析、变化」· M 代码 · 共 30 行

M
30
字号
function y=sobel(x,mode)
%------------------------------------------------------------
%   y=sobel(x,mode) is an edge detector using Sobel method.
%
%       x:      input image
%       mode:   mode=0 (default): using magnitude
%               mode=1: using square roots
%               mode=3: using max
%       y:      output image
%
%------------------------------------------------------------
if nargin==1, mode=0; end;

s1=[1 0 -1;2 0 -2;1 0 -1];
s2=[1 2 1;0 0 0;-1 -2 -1];

a1=conv2(x,s1,'same');
a2=conv2(x,s2,'same');

if mode==0
    y=abs(a1)+abs(a2);
elseif mode==1
    y=sqrt(a1.^2+a2.^2);
else
    y=max(abs(a1),abs(a2));
end
y=round(255*y/max(y(:)));


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?