I’d like to know exactly how this line of code works
corners = (m==n)&(n>threshold);
It’s in a piece of code I’m using and I want to understand it. Basically, m and n are both equal-sized images, and “threshold” is a decimal value.
To understand the context, a segment of the code is below.
% compute the m cornerness measure
m = (ix2s.*iy2s - ixys.^2) - 0.04*(ix2s+iy2s).^2;
% perform non-maximal suppression using ordfilt2
n = ordfilt2(m, radius^2, ones([radius radius]));
% display corner spots
corners = (m==n)&(n>threshold);
% superimpose corners
Q = corners+im;
Q(Q>1) = 1;
C = repmat(im,[1 1 3]);
C(:,:,1) = Q;
If I understand correctly, n is the max of m (“cornerness measure”) for the vicinity, so the line means – “if m is the local maximum and large enough(larger than threshold), then this is probably a corner”, it could have arguably been more readable as: