www.gusucode.com > 基于matlab的三维重建代码,提取两幅图片的匹配点源码程序 > 基于matlab的三维重建代码,提取两幅图片的匹配点源码程序/code/code/boxseqlines.m

    function [l, inc] = boxseqlines(X);

ind = find(X(1,:) ~= 0);
ss = size(X);
l(:,1) = [X(:,1); X(:,2)]; 
l(:,2) = [X(:,2); X(:,3)]; 
l(:,3) = [X(:,3); X(:,4)]; 
l(:,4) = [X(:,4); X(:,5)]; 
l(:,5) = [X(:,5); X(:,6)]; 
l(:,6) = [X(:,6); X(:,1)]; 
l(:,7) = [X(:,2); X(:,5)]; 

l(:,8) = [X(:,7); X(:,8)]; 
l(:,9) = [X(:,10); X(:,11)];
l(:,10) = [X(:,11); X(:,12)];  
l(:,11) = [X(:,12); X(:,13)]; 
l(:,12) = [X(:,13); X(:,10)];
l(:,13) = zeros(2*ss(1),1); 
l(:,14) = zeros(2*ss(1),1); 
l(:,15) = zeros(2*ss(1),1); 
l(:,16) = zeros(2*ss(1),1); 
l(:,17) = zeros(2*ss(1),1); 

if find(ind == 14)
l(:,13) = [X(:,7); X(:,14)]; 
end

if find(ind == 15)
l(:,14) = [X(:,10); X(:,15)]; 
end

if find(ind == 16)
l(:,15) = [X(:,11); X(:,16)]; 
end

if find(ind == 17)
l(:,16) = [X(:,8); X(:,17)]; 
end

if find(ind == 15) & find(ind == 16)
l(:,17) = [X(:,15); X(:,16)]; 
end;

% put down indexes of lines incident to a point
inc(1).lines = [];
inc(1).lines = [1,6];
inc(2).lines = [1,2];
inc(3).lines = [2,3];
inc(4).lines = [3,4];
inc(5).lines = [4,5,7];
inc(6).lines = [5,6];
inc(7).lines = [8];
inc(8).lines = [8];
inc(9).lines = [];
inc(10).lines = [9,12];
inc(11).lines = [9,10];
inc(12).lines = [10,11];
inc(13).lines = [11,12];
inc(14).lines = [];
inc(15).lines = [];
inc(16).lines = [];
inc(17).lines = [];