利用python学习OpenCV,个人感觉比较方便。函数的形式与C++基本相同,所以切换过来还是比较好的,对于像我这种对python不太熟练的人,使用python的集成开发环境PyCharm进行学习,可以设置断点调试,有助于我这类初学者理解掌握。
SIFT特征具有平移、旋转、尺度和光照不变性,在计算机视觉中应用广泛。但是其计算量相对比较大,SURF就是一种加速版的SIFT。在保证特征准确提取的前提下大大提高了程序的速率,使得整个算法的性能得到较大的提升
下面是利用python语言结合OpenCV进行SURF特征检测的代码:
# -*- coding:utf-8 -*-
__author__ = 'Microcosm'
import cv2
import numpy as np
img = cv2.imread("E:\python\Python Project\opencv_showimage\images\lena.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# surf.hessianThreshold=3000
surf = cv2.SURF(3000)
kp,res = surf.detectAndCompute(gray,None)
print res.shape
img = cv2.drawKeypoints(i