OpenCV-Python dense SIFT

后端 未结 3 899
小蘑菇
小蘑菇 2021-01-01 22:17

OpenCV has very good documentation on generating SIFT descriptors, but this is a version of \"weak SIFT\", where the key points are detected by the original Lowe algorithm.

相关标签:
3条回答
  • 2021-01-01 22:47

    I'm not sure what your goal is here, but be warned, the SIFT descriptor calculation is extremely slow and was never designed to be used in a dense fashion. That being said, OpenCV makes it fairly trivial to do so.

    Basically instead of using sift.detect(), you just fill in the keypoint array yourself by making a grid a keypoints however dense you want them. Then a descriptor will be calculated for each keypoint when you pass the keypoints to sift.compute().

    Depending on the size of your image and the speed of your machine, this might take a very long time. If copmutational time is a factor, I suggest you look at some of the binary descriptors OpenCV has to offer.

    0 讨论(0)
  • 2021-01-01 22:56

    You can use Dense Sift in opencv 2.4.6 <. Creates a feature detector by its name.

    cv2.FeatureDetector_create(detectorType)

    Then "Dense" string in place of detectorType

    eg:-

    dense=cv2.FeatureDetector_create("Dense")
    kp=dense.detect(imgGray)
    kp,des=sift.compute(imgGray,kp)
    
    0 讨论(0)
  • 2021-01-01 23:00

    Inspite of the OpenCV way being the standard, it was too slow for me. So for that, I used pyvlfeat, which is basically python bindings to VL-FEAT. The functions carry similar syntax as the Matlab functions

    0 讨论(0)
提交回复
热议问题