zoukankan      html  css  js  c++  java
  • 在OpenCV3.1.0中使用SIFT,SURF算法

    写在前边:

    1.我使用的是python2.7 + OpenCV3.1.0

    2.OpenCV3.0.0+的文档有很大问题,很多文档写的还是OpenCV2.0+, OpenCV3.0+根本用不了,其中有一部分原因是,有一些函数被放在了opencv_contrib这个模块里边,需要把这个扩展模块另外编译进去才可以用。官方的说法是,那些还不十分稳定的函数模块都被放在了opencv_contrib模块里边,因为不稳定,所以不能放在release里边,在opencv_contrib里边调好之后才会放入release里边。

    3.要想在OpenCV3.0+中直接使用SIFT, SURF算法,需要现安装扩展模块opencv_contrib。这两个算法都在这个扩展模块的xfeatures2d模块里。在这里可以找到https://github.com/Itseez/opencv_contrib/tree/master/modules/xfeatures2d/src

    注:安装扩展模块opencv_contrib 参考我的另一篇文章:http://www.cnblogs.com/asmer-stone/p/5089764.html

    下边是在OpenCV3.1.0中调用SURF算法的代码surf.py:

    (调用SIFT算法和这个一样,只需要把代码中所有的surf换成sift即可)

    import cv2
    
    img = cv2.imread('1.jpg')
    gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    
    surf = cv2.xfeatures2d.SURF_create()
    kp = surf.detect(gray,None)
    
    img = cv2.drawKeypoints(gray, kp, img)
    
    cv2.imshow("img", img)
    
    k = cv2.waitKey(0)
    if k & 0xff == 27:
        cv2.destroyAllWindows()
    

    结果:

  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/asmer-stone/p/5090263.html
Copyright © 2011-2022 走看看