OpenCV | OpenCV:sift,SURF 特征提取
【摘要】 一、环境准备
目前 Opencv 有2.x 和 3.x 版本,两个版本之间的差异主要是一些功能函数被放置到了不同的功能模块,因此大多数情况两个版本的代码并不能通用。建议安装 Anaconda,自行下载相应版本。直接命令安装Opencv3。
安装
pip install opencv-python==3.4.2....
一、环境准备
目前 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 特征提取:
参考
https://www.cnblogs.com/jqpy1994/p/10561891.html
文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。
原文链接:drugai.blog.csdn.net/article/details/102996452
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)