OpenCV 2.4, Python — получение лапласиана из ключевой точки SURF

Я использую OpenCV 2.4 для извлечения функций SURF, и мне нужно лапласианское значение каждой ключевой точки для процесса сопоставления.

У меня не было проблем с этим, когда я использовал OpenCV 2.3. В OpenCV 2.4 cv2.SURF() не работает, поэтому мне приходится прибегать к этому:

im2 = cv2.imread(imgPath)
im = cv2.cvtColor(im2, cv2.COLOR_BGR2GRAY)
surfDetector = cv2.FeatureDetector_create("SURF")
surfDescriptorExtractor = cv2.DescriptorExtractor_create("SURF")
keypoints = surfDetector.detect(im)
(keypoints, descriptors) = surfDescriptorExtractor.compute(im,keypoints)

Это работает, однако дает мне набор общих объектов ключевых точек. Есть ли способ получить конкретные значения SURF? (лапласиан, гессиан)

К сожалению, я не могу вернуться к 2.3, так как 2.4 исправляет другую проблему, с которой я столкнулся ранее.


person Kkov    schedule 30.05.2012    source источник


Ответы (1)


Предполагая, что keypoint является одной ключевой точкой:

x = keypoint.pt[0]
y = keypoint.pt[1]
size = keypoint.size
dir_in_degrees = keypoint.angle
laplacian = round(keypoint.class_id)
hessian = keypoint.response
person Andrey Kamaev    schedule 30.05.2012
comment
Спасибо! Именно то, что я хотел. Однако я думаю, что round должен быть вокруг гессиана, а не лапласиана. - person Kkov; 31.05.2012