📄 hang.m
字号:
RGB=imread('000000.jpg');%读图
for k=1:10
I= double(rgb2gray(RGB));
h = fspecial('sobel');
gx=imfilter(I,h,'replicate');
gy=imfilter(I,h,'replicate');
eI=abs(gx)+abs(gy);
Mh=eI;
[n,m]=size(I);
for i=1:n
for j=2:m
if i==1
Mh(i,j)=eI(i,j)+min([Mh(i,j-1),Mh(i+1,j-1)]);
elseif i==n
Mh(i,j)=eI(i,j)+min([Mh(i-1,j-1),Mh(i,j-1)]);
else
Mh(i,j)=eI(i,j)+min([Mh(i-1,j-1),Mh(i,j-1),Mh(i+1,j-1)]);
end
end
end
[c,I]=min([Mh(:,m)]);
A(1,m)=I;
for i=m-1:-1:1
if I==1
[c,I1]=min([Mh(I,i),Mh(I+1,i)]);
I=I+I1-1;
elseif I==n
[c,I2]=min([Mh(I-1,i),Mh(I,i)]);
I=I+I2-2;
else
[c,I3]=min([Mh(I-1,i),Mh(I,i),Mh(I+1,i)]);
I=I+I3-2;
end
A(1,i)=I;
end
for i=1:m
RGB(A(1,i),i,1)=255;
RGB(A(1,i),i,2)=0;
RGB(A(1,i),i,3)=0;
end
imshow(RGB);
for i=1:m
RGB(A(1,i):n-1,i,1)=RGB(A(1,i)+1:n,i,1);
RGB(A(1,i):n-1,i,2)=RGB(A(1,i)+1:n,i,2);
RGB(A(1,i):n-1,i,3)=RGB(A(1,i)+1:n,i,3);
end
RGB=RGB(1:n-1,:,:);
figure,imshow(RGB);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -