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()
原图:
SURF 特征提取:
参考
推荐阅读
-
Python基于opencv调用摄像头获取个人图片的实现方法
-
使用python opencv对目录下图片进行去重的方法
-
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
-
Python+OpenCV感兴趣区域ROI提取方法
-
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
-
Windows编译OpenCV4Android解决undefined reference to std错误
-
python中使用OpenCV进行人脸检测的例子
-
python opencv 读取本地视频文件 修改ffmpeg的方法
-
Python+OpenCV图片局部区域像素值处理改进版详解
-
荐 图像轮廓(二)【OpenCV&Python】