matlab:C语言逻辑实现robot边缘算子。
代码:
clc;
clear all;
f=imread('E:\matlabCX\图片\3.jpg');
figure(1);
imshow(f);
[m,n,r]=size(f);
if r>1
f1=rgb2gray(f);
else
f1=f;
end
f2=zeros(m,n);
f1=double(f1);
Ax=[-1,0;0,1];
Ay=[0,-1;1,0];
for x=2:m-1
for y=2:n-1
tp1=0.0;
tp2=0.0;
for x1=0:1
for y1=0:1
tp1=tp1+f1(x+x1,y+y1)*Ax(x1+1,y1+1);
tp2=tp2+f1(x+x1,y+y1)*Ay(x1+1,y1+1);
end
end
f2(x,y)=(tp1^2+tp2^2)^(1/2);
end
end
T=10;
f4=zeros(m,n);
for x=2:m-1
for y=2:n-1
if f2(x,y)>T
f4(x,y)=255;
else
f4(x,y)=0;
end
end
end
figure(3)
imshow(uint8(f4))
原图:
少年不被楼层误,余生不羁尽自由。
加油,加油!