From bf6d903d8f1c6bb0cce9cd00474c84b9f28e2cb5 Mon Sep 17 00:00:00 2001 From: mark <mwinter@uwm.edu> Date: Fri, 22 Jun 2012 15:52:07 -0500 Subject: [PATCH] Added in some missed dependencies for the old code. --- matlab/distToPath.m | 14 ++++++++++++++ matlab/distToSeg.m | 27 +++++++++++++++++++++++++++ matlab/rebuildLookupTables.m | 18 ++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 matlab/distToPath.m create mode 100644 matlab/distToSeg.m create mode 100644 matlab/rebuildLookupTables.m diff --git a/matlab/distToPath.m b/matlab/distToPath.m new file mode 100644 index 0000000..149554e --- /dev/null +++ b/matlab/distToPath.m @@ -0,0 +1,14 @@ +function [dist, segparam, segidx] = distToPath(ptsX, ptsY, path) + dist = Inf*ones(size(ptsX)); + segidx = zeros(size(ptsX)); + segparam = zeros(size(ptsX)); + + for i=1:length(path)-1 + [tdist, tdisp, spparam] = distToSeg(ptsX, ptsY, path(:,i:i+1)); + tparam = spparam(:,:,2); + bLess = (tdist < dist); + dist(bLess) = tdist(bLess); + segparam(bLess) = tparam(bLess); + segidx(bLess) = i; + end +end \ No newline at end of file diff --git a/matlab/distToSeg.m b/matlab/distToSeg.m new file mode 100644 index 0000000..f1a4c33 --- /dev/null +++ b/matlab/distToSeg.m @@ -0,0 +1,27 @@ +function [dist, disp, spparam] = distToSeg(ptsX, ptsY, seg) + segTan = seg(:,2) - seg(:,1); + segNrm = [segTan(2),-segTan(1)]; + + segLen = norm(segTan); + + N = size(ptsX); + disp = zeros([N 2]); + + dispVecX = ptsX - repmat(seg(1,1), N); + dispVecY = ptsY - repmat(seg(2,1), N); + + disp(:,:,1) = dot(cat(3,dispVecX, dispVecY), repmat(reshape(segTan,[1,1,2]),N),3) / segLen; + disp(:,:,2) = dot(cat(3,dispVecX, dispVecY), repmat(reshape(segNrm,[1,1,2]),N),3) / segLen; + + spparam = disp; + + bzDisp = (disp > 0 & disp <= segLen); + bzDisp(:,:,2) = 0; + disp(bzDisp) = 0; + + blDisp = (disp > segLen); + blDisp(:,:,2) = 0; + disp(blDisp) = disp(blDisp) - segLen; + + dist = sqrt((disp(:,:,1).^2) + (disp(:,:,2).^2)); +end \ No newline at end of file diff --git a/matlab/rebuildLookupTables.m b/matlab/rebuildLookupTables.m new file mode 100644 index 0000000..3a427ed --- /dev/null +++ b/matlab/rebuildLookupTables.m @@ -0,0 +1,18 @@ +function trackingStruct = rebuildLookupTables(trackingStruct) + locLUT = zeros(1,length(trackingStruct.rgDetect)); + globLUT = zeros(size(trackingStruct.gConnect,1),2); + + for t=1:length(trackingStruct.rgDetect) + numDets = size(trackingStruct.rgDetect{t},1); + globLUT(locLUT(t)+(1:numDets),:) = [t*ones(numDets,1), (1:numDets)']; + + if ( t+1 > length(trackingStruct.rgDetect) ) + continue; + end + + locLUT(t+1) = locLUT(t) + numDets; + end + + trackingStruct.locNodeLUT = locLUT; + trackingStruct.globNodeLUT = globLUT; +end \ No newline at end of file -- GitLab