📄 sobel.m
字号:
f=imread('lena256.bmp') %读原图
f=im2double(f); %改变数值类型(unit-double)
imshow(f) %显示原来图象
L=length(f); %矩阵长度
a=[-1,-2,-1;0,0,0;1,2,1];%水平算子
b=[-1,0,1;-2,0,2;-1,0,1];%垂直算子
cc=conv2(a,f); %水平算子卷积图象
dd=conv2(b,f); %垂直算子卷积图象
for i=1:1:L, %截去多于象素
for j=1:1:L
c(i,j)=cc(i,j);
d(i,j)=dd(i,j);
end
end
for i=1:1:L, %求得c,d矩阵每个值的平方
for j=1:1:L
c(i,j)=c(i,j)*c(i,j);
d(i,j)=d(i,j)*d(i,j);
end
end
t=c+d;
for i=1:1:L,
for j=1:1:L
t(i,j)=sqrt(t(i,j)) ; %开方
end
end
n=input('输入threshold='); %输入阀值
for i=1:1:L, %大于阀值1 小于阀值0
for j=1:1:L
if t(i,j)>n
t(i,j)=1;
else t(i,j)=0;
end
end
end
imshow(t)%显示检测后图象
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -