需要源码和图片请点赞关注收藏后评论区留言私信~~~
应用尺度不变特征变换(SIFT)
尺度不变特征变换是用于图像处理领域的一种局部特征检测算法,SIFT算法(1999)发现了图像或者视频中的特征,并由英国哥伦比亚大学获得专利。通常,我们可以使用特征进行分类或聚类。SIFT相对于平移、缩放和旋转是不变的
SIFT算法描述如下
输入:原始图像
输出:图像的SIFT特征点
方法:
(1)使用高斯模糊滤波器以不同的比例模糊图像。
(2)一个octave对应于使滤波器的标准偏差加倍。将模糊图像按octave分组并差分它们。 (3)在差分图像的标度上找到局部极值。
(4)将与局部极值相关的每个像索与相同尺度和相邻尺度的相邻像素进行比较。
(5)从比较中选择最大或最小值。
(6)排除低对比度点。
(7)插人候选关键点(图像特征)以获得原始图像上的位置。
图像的SIFT特征提取实战
效果如下图
部分代码如下
import cv2 as cv from matplotlib import pyplot as plt import numpy as np img = cv.imread('images\lena.jpg',cv.IMREAD_COLOR) cv.imshow('Lean',img) gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) sift = cv.xfeats2d.SIFT_create() kp = sift.detect(gray, None)# 找出关键点 ret = cv.drawKeypoints(gray, kp, img) cv.imshow('SIFTKeyPint', ret) cv.waitKey(0) cv.destroyAllWindows() kp, des = sift.compute(gray, kp) # 使用关键点找出sift特征向量 print('特征点个数:',np.shape(kp)) print('特征向量维度:\n',np.
创作不易 觉得有帮助请点赞关注收藏~~~