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.
Есть идеи? Благодарю.