OpenCV | OpenCV:sift,SURF 特征提取

简介: OpenCV | OpenCV:sift,SURF 特征提取

一、环境准备

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

原图:

image.png

SURF 特征提取:

image.png

目录
相关文章
|
3月前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
176 0
|
3月前
|
算法 计算机视觉
OpenCV中使用加速鲁棒特征检测SURF与图像降噪讲解与实战(附源码)
OpenCV中使用加速鲁棒特征检测SURF与图像降噪讲解与实战(附源码)
77 0
|
3月前
|
算法 数据挖掘 计算机视觉
OpenCV中应用尺度不变特征变换SIFT算法讲解及实战(附源码)
OpenCV中应用尺度不变特征变换SIFT算法讲解及实战(附源码)
55 0
|
Java 计算机视觉
java调用opencv的sift方法
java调用opencv的sift方法
356 0
|
算法 固态存储 计算机视觉
OpenCV 匹配兴趣点:SIFT、SURF 和二值描述子
上一篇文章中讲到如何检测图像中的兴趣点,以便后续的局部图像分析。为了进行基于兴趣点的图像分析,我们需要构建多种表征方式,精确地描述每个关键点。这些描述子通常是二值类型、整数型或浮点数型组成的向量。
2627 0
|
算法 计算机视觉
OpenCV 尺度不变特征检测:SIFT、SURF、BRISK、ORB
这个学期在上数字图像处理这门课。这门课没有考试,只有大作业,要求使用labwindows和NI Vision进行开发。我选的题目是全景图像的合成(图像拼接),其中要使用到一些特征点检测和匹配的算法。
3815 0
|
Android开发
android opencv2.4.10使用SIFT编译出libnonfree.so
My development environment is set up as follows: android-ndk-r10d (install path: D:\adt-bundle-windows-x86_64-20140702\android-ndk-r10d\) OpenCV-2.
1302 0
|
算法 计算机视觉
OpenCV教程(47) sift特征和surf特征
在前面三篇教程中的几种角检测方法,比如harris角检测,都是旋转无关的,即使我们转动图像,依然能检测出角的位置,但是图像缩放后,harris角检测可能会失效,比如下面的图像,图像放大之前可以检测出为harris角,但是图像放大后,则变成了边,不能检测出角了。
1318 0
|
7天前
|
机器人 计算机视觉
巧用 OpenCV solvePnP() 函数完成由图像坐标系到机器人坐标系的转换(二维坐标系之间的转换)
巧用 OpenCV solvePnP() 函数完成由图像坐标系到机器人坐标系的转换(二维坐标系之间的转换)
20 2
|
1月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。