OpenCV-Python плотный SIFT

OpenCV имееточень хорошая документация по генерации SIFT дескрипторов, но это версия "слабого SIFT", где ключевые точки обнаруживаются оригиналомАлгоритм Лоу, Пример OpenCV читает что-то вроде:

img = cv2.imread('home.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()
kp = sift.detect(gray,None)
kp,des = sift.compute(gray,kp)

Мне нужен сильный / плотный SIFT, который не определяет ключевые точки, а вместо этого вычисляет дескрипторы SIFT для набора патчей (например, 16x16 пикселей, 8 пикселей), охватывающих изображение в виде сетки. Насколько я понимаю, в OpenCV есть два способа сделать это:

Я мог бы сам разделить изображение в сетке и каким-то образом преобразовать эти патчи в KeyPointsЯ мог бы использовать детектор признаков на основе сетки

Другими словами, я должен был бы заменитьsift.detect() линия с чем-то, что дает мне ключевые точки, которые мне нужны.

Моя проблема в том, что остальной документации OpenCV, особенно в отношении Python, очень не хватает, поэтому я понятия не имею, как этого добиться. В документации по C ++ я вижу, что есть детекторы ключевых точек для сетки, но я не знаю, как использовать их из Python.

Альтернативой является переключение на VLFeat, который имеет очень хорошую реализацию DSift / PHOW, но означает, что мне придется переключаться с python на matlab.

Есть идеи? Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос