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 = [];