资源简介
用matlab实现的链码提取算法。做项目时用到的,久寻不获,于是自己动手写了一个。希望对大家有所帮助。
需要把三个文件放在一个工作目录下。主函数是listcode,需要调用getcode和searchtip函数。
需要把三个文件放在一个工作目录下。主函数是listcode,需要调用getcode和searchtip函数。
代码片段和文件信息
%此函数用来根据一个已知点来提取以该点为端点的特征线的链码
%im为输入二值图像x0y0为端点坐标
function result=getcode(imx0y0)
[m n]=size(im);
points(1)=x0; %用points记录所有链码起始点的位置
points(2)=y0;
next=1; %用来判断是否结束对当前链码的搜索
number=1; %用来记录当前链码以搜索点的数量
list=[];
list(number)=0;
x=x0;
y=y0;
%每当搜索到一个起始点,搜索其周围点,追寻链码轨迹
while(next==1)
if(x<=0|x>m|y<=0|y>n) %如果链码当前点已到达边界,则停止搜索
next=0;
else
im(xy)=0; %把已搜索过的点值置零,以免重复搜索
%按照方向表中从1到8的顺序检索当前点周围是否存在非0点
if(im(xy+1)==1)
list(number)=4;
x=x;
y=y+1;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0) %判断是否回到起始点,若是则当前特征线链码提取结束
next=0;
end
elseif(im(x+1y)==1)
list(number)=6;
x=x+1;
y=y;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0)
next=0;
end
elseif(im(xy-1)==1)
list(number)=8;
x=x;
y=y-1;
x1=x;
y1=y;
number=number+1;
if(x==x0&y==y0)
next=0;
end
elseif(im(x-1y)==1)
list(number)=2;
x=x-1;
y=y;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0)
next=0;
end
elseif(im(x+1y+1)==1)
list(number)=5;
x=x+1;
y=y+1;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0)
next=0;
end
elseif(im(x+1y-1)==1)
list(number)=7;
x=x+1;
y=y-1;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0)
next=0;
end
elseif(im(x-1y-1)==1)
list(number)=1;
x=x-1;
y=y-1;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0)
next=0;
end
elseif(im(x-1y+1)==1)
list(number)=3;
x=x-1;
y=y+1;
x1=x;
y1=y;
number=1+number;
if(x==x0&y==y0)
next=0;
end
else
next=0;
end
end
end
result=[x0 y0 x1 y1 list(:)‘];
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2690 2008-12-04 10:38 getcode.m
文件 2106 2008-12-04 10:37 searchtip.m
文件 4627 2008-12-04 10:43 listcode.m
----------- --------- ---------- ----- ----
9423 3
- 上一篇:CRC循环冗余校验的matlab仿真程序
- 下一篇:MRF matlab源码
相关资源
- MRF matlab源码
- CRC循环冗余校验的matlab仿真程序
- 曲线旋转得到曲面的MATLAB程序
- matlab 数字图像对比度拉伸算法
- Hough变换实现椭圆及圆检测(MATLAB)
- MATLAB实现混沌图像加密仿真程序
- 数字图像处理radon matlab变换算法代码
- 主动轮廓模型算法matlab程序
- MATLAB 实现各类常见算法
- GMM(matlab源码)
- 数字信号处理 理论算法与实现 胡广书
- 基于BP神经网络的盲均衡算法 C程序(
- 激光谐振腔课程设计(matlab)exe及源
- Lozi混沌系统相关分析的MATLAB程序
- (7,4)循环码-信道编码的matlab仿真
- 一个用MATLAB编写的用于估计信号谐波
- kalman工具箱 用matlab编写 包附全部函数
- 基于harris算法的角点检测matlab原代码
- 偏最小二乘分析matlab工具包
- 基于matlab的窗函数法FIR数字滤波器设
- 北邮Matlab实验报告和代码
- 图像匹配matlab源程序sift算法
- matlab实现摄像机标定
- matlab编写的量子遗传算法
- 图像降噪Matlab代码
- Alamouti编码2X2仿真(MATLAB)
- 用蚁群算法求解TSP问题的matlab程序
- 跳扩散过程下欧式期权的定价matlab源
- 小波神经网络Matlab交通仿真程序
- 粒子群算法matlab工具箱
评论
共有 条评论