2015-04-30 7 views
2

Это вопрос, связанный с предыдущим вопросом об использовании плотной реализации SIP-файла OpenCVs в python (OpenCV-Python dense SIFT).Плотные настройки SIFT OpenCV-Python

Используя предложенный код для плотного сите

dense=cv2.FeatureDetector_create("Dense") 
    kp=dense.detect(imgGray) 
    kp,des=sift.compute(imgGray,kp) 

У меня есть следующие вопросы:

  • Могу ли я получить доступ к любому из свойств DenseFeatureDetector в Python? Установить или хотя бы прочитать?
  • Какова логика C++ s FeatureDetector :: create становится питонами FeatureDetector_create? Как я могу узнать, что на основании документации (http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html)?
  • Любые рекомендации по оболочке python для библиотеки VLFeat? Является ли pyvlfeat еще способ пойти (я пытался настроить pyvlfeat, но он не компилировался на моем mac)?

Спасибо!

+0

Возможно, вы можете просто запросить встроенные документы: 'dense = cv2.FeatureDetector_create (« Dense »); help (плотная) 'также помните, что интерфейсы для opencv3.0 здесь резко изменились и не позволят вам использовать плотную информацию, так осторожно. – berak

+0

Я вижу; вообще не будет никакого плотного просеивания или только не для питона? – Legie

+0

нет, в целом. но если вы думаете об этом, вы можете легко создать свои собственные ключевые точки – berak

ответ

3

Вы можете увидеть текущие параметры (по умолчанию) со следующим:

dense = cv2.FeatureDetector_create('Dense') 
f = '{} ({}): {}' 
for param in dense.getParams(): 
    type_ = dense.paramType(param) 
    if type_ == cv2.PARAM_BOOLEAN: 
     print f.format(param, 'boolean', dense.getBool(param)) 
    elif type_ == cv2.PARAM_INT: 
     print f.format(param, 'int', dense.getInt(param)) 
    elif type_ == cv2.PARAM_REAL: 
     print f.format(param, 'real', dense.getDouble(param)) 
    else: 
     print param 

Тогда вы получите вывод вроде следующего:

featureScaleLevels (int): 1 
featureScaleMul (real): 0.10000000149 
initFeatureScale (real): 1.0 
initImgBound (int): 0 
initXyStep (int): 6 
varyImgBoundWithScale (boolean): False 
varyXyStepWithScale (boolean): True 

Вы можете изменить параметры, как:

dense.setDouble('initFeatureScale', 10) 
dense.setInt('initXyStep', 3) 
+0

хороший ответ! благодаря! – complexM

 Смежные вопросы

  • Нет связанных вопросов^_^