尚振宏等《二值图像中拐点的实时检测算法》matlab实现

       这阵子在研究拐点检测,于是用matlab实现了尚振宏等的《二值图像中拐点的实时检测算法》。


代码说明:

1、测试图片只存在一个轮廓,若存在多个轮廓,最终结果以取得的第一个轮廓处理;

      示例:

                 

2、本人只实现了论文中的前四步,第五步的过滤伪拐点和第六步判断拐点的凹凸性没实现;

3、若有错误,欢迎指正。


代码1(8邻域拐点检测)

<span style="font-family:Microsoft YaHei;">clc;clear;close all;

%% 测试图像预处理
im0=imread('2.jpg');
im=im2bw(im0);%二值化
figure(1);imshow(im);title('原图')
[M,N]=size(im);

%% 求轮廓
B=bwboundaries(im);%寻找轮廓,B为存储轮廓信息的结构体
im1=zeros(M,N);
for k=1:length(B)
    boundary=B{k};%第k个轮廓,两列,存储轮廓各像素坐标
    
    %标注第k个轮廓像素所在位置为1
    for l=1:length(boundary)
        im1(boundary(l,1),boundary(l,2))=1;
    end
    
end
figure(2);imshow(im1);title('轮廓图')%绘制轮廓图

%% 求链码
[nr,nc]=size(B{1});
Code=size(1,nr);

for i=1:nr  
    
    if i==1  %起点到终点的链码特殊处理
        x=B{1}(i,1)-B{1}(nr,1);   %x&#
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值