📄 d1freecode.m
字号:
function returndata=d1freecode(data)
%针对平面的1-D游程编码,针对的是二值图像
%输入参数data是二值图像的2维矩阵,返回returndata 是一个一维数组
n=size(data);
n1=n(1);
n2=n(2);
%默认开始点为0
id=0;
num0=0;
num1=0;
sign=0; %默认从零0开始
tdat=data;
tdat=rot90(tdat);
tdat=flipud(tdat);
if data(1,1)~=0
id=id+1;
retur(id)=0;
sign=1;
end
for h=1:n1
for h2=1:n2
if data(h,h2) == 0 & sign == 0
num0=num0+1;
if h*h2==n1*n2 %表示这已经是结束
sign=1;
else
sign=tdat((h-1)*n2+h2+1);
end
end
if data(h,h2)==0 & sign==1
id=id+1;
retur(id)=num0;
num0=0;
end
if data(h,h2)==1 &sign==1
num1=num1+1;
if h*h2==n1*n2 %表示这已经是结束
sign=0;
else
sign=tdat((h-1)*n2+h2+1);
end
end
if data(h,h2)==1 & sign==0
id=id+1;
retur(id)=num1;
num1=0;
end
end
end
returndata=retur;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -