wolffd@0: function [overlap, normoverlap] = rectintSparseC(A,B) wolffd@0: % wolffd@0: % function [area, normarea] = rectintSparseC(A,B) wolffd@0: % A(i,:) = [x y w h] wolffd@0: % B(j,:) = [x y w h] wolffd@0: % out(i,j) = area of intersection wolffd@0: % wolffd@0: % Same as built-in rectint, but uses less memory. wolffd@0: % Also, returns area of overlap normalized by area of patch. wolffd@0: % See rectintSparse wolffd@0: wolffd@0: if isempty(A) | isempty(B) wolffd@0: overlap = []; wolffd@0: normoverlap = []; wolffd@0: return; wolffd@0: end wolffd@0: wolffd@0: leftA = A(:,1); wolffd@0: bottomA = A(:,2); wolffd@0: rightA = leftA + A(:,3); wolffd@0: topA = bottomA + A(:,4); wolffd@0: wolffd@0: leftB = B(:,1)'; wolffd@0: bottomB = B(:,2)'; wolffd@0: rightB = leftB + B(:,3)'; wolffd@0: topB = bottomB + B(:,4)'; wolffd@0: wolffd@0: numRectA = size(A,1); wolffd@0: numRectB = size(B,1); wolffd@0: wolffd@0: verbose = 0; wolffd@0: [overlap, normoverlap] = rectintSparseLoopC(leftA, rightA, topA, bottomA, leftB, rightB, topB, bottomB, verbose);