一、环境准备
目前 Opencv 有2.x 和 3.x 版本,两个版本之间的差异主要是一些功能函数被放置到了不同的功能模块,因此大多数情况两个版本的代码并不能通用。建议安装 Anaconda,自行下载相应版本。直接命令安装Opencv3。
安装
pip install opencv-python==3.4.2.16 pip install opencv-contrib-python==3.4.2.16
或
pip install opencv_python-3.4.2.16-cp37-cp37m-win_amd64.whl pip install opencv_contrib_python-3.4.2.16-cp37-cp37m-win_amd64.whl
二、SIFT、SURF
SURF特征是SIFT特征的一个更快的特征提取版,详细请参阅文献[1]。以下将展示python open cv 的 SURF 的特征提取命令,及绘制命令。
python opecv-3.0 参考这里
三、特征提取
import cv2 # 读取图像 im = cv2.imread('protein_dna.png') cv2.imshow('original',im) #cv2.waitKey() # 下采样 #im_lowers = cv2.pyrDown(im) #cv2.imshow('im_lowers',im_lowers) # 检测特征点 #s = cv2.SIFT() # 调用SIFT s = cv2.xfeatures2d.SURF_create() # 调用SURF keypoints = s.detect(im) # 显示特征点 for k in keypoints: cv2.circle(im,(int(k.pt[0]),int(k.pt[1])),1,(0,255,0),-1) #cv2.circle(im,(int(k.pt[0]),int(k.pt[1])),int(k.size),(0,255,0),2) cv2.imshow('SURF_features',im) cv2.waitKey() cv2.destroyAllWindows()
原图:
SURF 特征提取: