Как уменьшить количество точек, обнаруживаемых детектором угла Harris? - PullRequest
0 голосов
/ 10 июля 2020

Я использую детектор углов Харриса для обнаружения особенностей. Код, который я использую, приведен ниже. В результате обнаружено более 10000+ ключевых точек. Как уменьшить количество обнаруженных ключевых точек примерно до 1000 и убедиться в их точности?


import numpy as np
import cv2 as cv
img = cv.imread('img.jpg')

half = cv.resize(img, (1200, 800), fx=0.1, fy=0.1)

gray = cv.cvtColor(half, cv.COLOR_BGR2GRAY)

gray = np.float32(gray)
dst = cv.cornerHarris(gray, 2, 3, 0.20)

dst = cv.dilate(dst, None)

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

num_corners = np.sum(dst > 0.01 * dst.max())

print(num_corners)

cv.imshow('dst', half)

cv.waitKey(0)
cv.destroyAllWindows()

1 Ответ

0 голосов
/ 10 июля 2020

Поиграйте со значением «0,01» в следующих строках вашего кода. Увеличьте его, чтобы уменьшить количество обнаруженных углов.

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

num_corners = np.sum(dst > 0.01 * dst.max())

Информация об обнаружении углов Harris доступна здесь.

...