OpenCV | OpenCV:sift,SURF 特征提取

举报
DrugAI 发表于 2021/07/15 02:34:45 2021/07/15
【摘要】 一、环境准备 目前 Opencv 有2.x 和 3.x 版本,两个版本之间的差异主要是一些功能函数被放置到了不同的功能模块,因此大多数情况两个版本的代码并不能通用。建议安装 Anaconda,自行下载相应版本。直接命令安装Opencv3。 安装 pip install opencv-python==3.4.2....

一、环境准备

目前 Opencv 2.x  3.x 版本,两个版本之间的差异主要是一些功能函数被放置到了不同的功能模块,因此大多数情况两个版本的代码并不能通用。建议安装 Anaconda,自行下载相应版本。直接命令安装Opencv3。

安装


  
  1. pip install opencv-python==3.4.2.16
  2. pip install opencv-contrib-python==3.4.2.16


  
  1. pip install opencv_python-3.4.2.16-cp37-cp37m-win_amd64.whl
  2. 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 参考这里

三、特征提取

 


  
  1. import cv2
  2. # 读取图像
  3. im = cv2.imread('protein_dna.png')
  4. cv2.imshow('original',im)
  5. #cv2.waitKey()
  6. # 下采样
  7. #im_lowers = cv2.pyrDown(im)
  8. #cv2.imshow('im_lowers',im_lowers)
  9. # 检测特征点
  10. #s = cv2.SIFT() # 调用SIFT
  11. s = cv2.xfeatures2d.SURF_create() # 调用SURF
  12. keypoints = s.detect(im)
  13. # 显示特征点
  14. for k in keypoints:
  15. cv2.circle(im,(int(k.pt[0]),int(k.pt[1])),1,(0,255,0),-1)
  16. #cv2.circle(im,(int(k.pt[0]),int(k.pt[1])),int(k.size),(0,255,0),2)
  17. cv2.imshow('SURF_features',im)
  18. cv2.waitKey()
  19. 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。