Что возвращает cv2.cornerHarris? - PullRequest
       6

Что возвращает cv2.cornerHarris?

0 голосов
/ 17 февраля 2019

Я читал о cornerHarris в OpenCV.Я прочитал документацию , но я не уверен, что возвращает эта функция.

При чтении примеров есть утверждение, записанное как:

dst = cv2.cornerHarris(gray,2,3,0.04)

img[dst>0.01*dst.max()]=[0,0,255]

Я просто не могу понять второе утверждение выше, возможно, потому что я не понимаю, что на самом деле возвращает cornerHarris.

Я чувствую, что применяется какой-то порог, но я не могу объяснить.

1 Ответ

0 голосов
/ 17 февраля 2019

Я только что проверил пример страницы, которую вы связали:

Порог для оптимального значения, он может варьироваться в зависимости от изображения.img [dst> 0.01 * dst.max ()] = [0,0,255]

Это страница документации, которую я действительно искал: https://docs.opencv.org/2.4/modules/imgproc/doc/feature_detection.html?highlight=cornerharris#cornerharris

Углы на изображении можно найти как локальные максимумы этой карты ответов.

Детектор cv2.cornerHarris возвращает найденные углы.Как обычно, этот метод не возвращает список найденных углов.Вместо этого он возвращает 2d-массив - того же размера, что и входные данные - с вероятностями.Каждая позиция в этом массиве сохраняет уверенность в том, что этот пиксель является углом (если быть точным, это не единственный пиксель, который, как прогнозируется, будет углом. Это окрестность, центрированная в этих координатах)

Поэтому, скорее всего, cv2.cornerHarris возвращает значение для уверенности в собственном прогнозе.И с dst>0.01*dst.max() код фильтрует углы, которые являются только "углами с низкой достоверностью".Любой обнаруженный угол будет помечен как угол, если достоверность превышает 1% от максимальной достоверности.

...