wolffd@0: function [overlap, normoverlap] = rectintC(A,B) wolffd@0: % wolffd@0: % A(i,:) = [x y w h] wolffd@0: % B(j,:) = [x y w h] wolffd@0: % overlap(i,j) = area of intersection wolffd@0: % normoverlap(i,j) = overlap(i,j) / min(area(i), area(j)) wolffd@0: % wolffd@0: % Same as built-in rectint, but faster and uses less memory (since avoids repmat). wolffd@0: 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: verbose = 0; wolffd@0: [overlap, normoverlap] = rectintLoopC(leftA, rightA, topA, bottomA, leftB, rightB, topB, bottomB, verbose);