欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenCV | OpenCV:sift,SURF 特征提取

程序员文章站 2022-07-14 23:44:11
...

一、环境准备

目前 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()

原图:

OpenCV | OpenCV:sift,SURF 特征提取

SURF 特征提取:

OpenCV | OpenCV:sift,SURF 特征提取

 


参考

https://www.cnblogs.com/jqpy1994/p/10561891.html