• 大小: 13KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: Matlab
  • 标签:

资源简介

研究生作论文时写的一个链码提取直线的Matlab代码,大家将就看一下吧。

资源截图

代码片段和文件信息

function [LL_corner] = detectcorner2(bik)%
%采用张小莉《一种有效的基于Freeman链码的拐角检测法》
%根据差分码判断链码中的一点是不是角点.
%b为跟踪的一条线的坐标.
%L为链码,L_corner为角点坐标
% ik = 4;
c = myfun_fchcode(b8);
L = c.fcc;  %链码的长度比跟踪的曲线的长度小1
L_corner = [];
for i = 2:length(L) %i为线中坐标的位置,而非链码串中坐标的位置
    d = abs(L(i)-L(i-1));
    if d>4
        d = d-8;
    end
    if abs(d)>2
        L_corner(end+1) = i;
    elseif abs(d)==1 | abs(d)==2
        if iscorner(biik)
            L_corner(end+1) = i;
        end
    end
end

function result = iscorner(biik)
% if i<=ik
%     x3 = b(11);  y3 = b(12);
% else
%     x3 = b(i-ik1);y3 = b(i-ik2);
% end
if i<=ik | (i+ik)>size(b1)
    result = true;
else
    x3 = b(i-ik1);y3 = b(i-ik2);
    y1 = b(i2); y2 = b(i+ik2); 
    x1 = b(i1); x2 = b(i+ik1); 
    s1 = atan((y2-y1)/(x2-x1));
    s2 = atan((y3-y1)/(x3-x1));
    s = abs(s2-s1);
    if s>0.3
        result = true;
    else
        result = false;
    end
end











 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10858  2009-06-09 09:09  myfun_traceline6.m

     文件       3717  2009-01-04 09:59  stay_straight.m

     文件       1239  2009-03-03 10:44  traceline_test.m

     文件       1086  2008-12-31 11:15  detectcorner2.m

     文件        668  2008-12-30 21:26  draw_progressive.m

     文件       8046  2009-06-13 18:37  GUI_code.m

     文件        372  2008-12-26 16:47  is_straight.m

     文件       1136  2008-12-19 09:31  local_isorigion.m

     文件        736  2008-12-30 21:11  myfun_displine.m

     文件       8812  2008-12-10 20:47  myfun_fchcode.m

----------- ---------  ---------- -----  ----

                36670                    10


评论

共有 条评论

相关资源