Код манипуляции с изображениями в MATLAB (определение угла) - PullRequest
2 голосов
/ 22 февраля 2012

Я бы хотел точно знать, как работает эта строка кода

corners = (m==n)&(n>threshold);

Это фрагмент кода, который я использую, и я хочу понять его.По сути, m и n - это изображения одинакового размера, а «порог» - десятичное значение.

Чтобы понять контекст, сегмент кода приведен ниже.

% 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;

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Если я правильно понимаю, n - это максимум m («угловая мера») для окрестности, поэтому линия означает - «если m - локальный максимум и достаточно большой (больше, чем порог), то это, вероятно, угол ", это, возможно, могло бы быть более читабельным как:

corners = (m==n)&(m>threshold);
1 голос
/ 23 февраля 2012

Вы должны прочитать больше о Детектор углов Harris .Взято из Википедии:

enter image description here

Эта строка является реализацией функции, упомянутой выше.Используется для определения углов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...