摘要:理论前面讲的角点检测器中的角点在旋转的图像中也是角点,但是缩放呢如果缩放图像,则角可能不是角例如,检查下面的简单图像,当在同一窗口中放大时,小窗口内的小图像中的角是平坦的所以角点检测器不是尺度不变的所以,在年,不列颠哥伦比亚大学的在他的论
Introduction to SIFT (Scale-Invariant Feature Transform)
理论前面讲的Harris角点检测器中的角点在旋转的图像中也是角点,但是缩放呢? 如果缩放图像,则角可能不是角.例如,检查下面的简单图像, 当在同一窗口中放大时,小窗口内的小图像中的角是平坦的.所以Harris角点检测器不是尺度不变的.
所以,在2004年,不列颠哥伦比亚大学的D.Lowe在他的论文中提出了一种新的算法,即尺度不变特征变换(SIFT).
SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高.基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认.使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位.在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算.SIFT特征的信息量大,适合在海量数据库中快速准确匹配.
OpenCV中的SIFTimport numpy as np import cv2 img = cv2.imread("img.jpg") gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) sift = cv2.xfeatures2d.SIFT_create() kp = sift.detect(gray,None) img=cv2.drawKeypoints(gray,kp,img) cv2.imshow("img",img) cv2.waitKey()
NOTE:
lz直接运行上述代码时,程序报错:
module "cv2.cv2" has no attribute "xfeatures2d",后面查询原因知道OpenCv3.x以后只包含部分内容,需要神经网络或者其他的函数需要导入opencv_contrib,所以需要pip install opencv-contrib-python
sift.detect()函数在图像中查找关键点, 如果只想搜索图像的一部分,可以传递掩膜.
OpenCV还提供了cv2.drawKeyPoints()函数,该函数在关键点的位置上绘制小圆圈.如果传递标志cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS,它将绘制一个大小为keypoint的圆圈并显示它的方向.
import numpy as np import cv2 img = cv2.imread("img.jpg") gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) sift = cv2.xfeatures2d.SIFT_create() kp = sift.detect(gray,None) img=cv2.drawKeypoints(gray,kp,img,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) cv2.imshow("img",img) cv2.waitKey()
计算描述符,OpenCV提供了两种方法:
如果已经找到了关键点,可以调用sift.compute()来计算找到的关键点的描述符, 例如:kp,des = sift.compute(gary,kp)
如果没有找到关键点,可以使用函数sift.detectAndCompute()在一个步骤中直接查找关键点和描述符
sift = cv2.xfeatures2d.SIFT_create() kp, des = sift.detectAndCompute(gray,None)
kp是关键点列表,des是形状为Number_of_Keypoints×128的numpy数组.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42063.html
摘要:降采样的目的是为了综合所有不同清晰度的图像进行关键点提取,这种关键点携带了不同清晰度的信息,对缩放具有不变性。是对的一种改进,主要特点是快速。的达到维,导致的比较耗时,使用哈尔小波转换得到的方向,让的降到维,减少了一半,提高了匹配速度。 尺度不变特征变换(Scale-invariant feature transform, 简称SIFT)是图像局部特征提取的现代方法——基于区域/图像块...
摘要:理论在上一章中,我们看到了的关键点检测和描述但它相对较慢,人们需要更加快速的版本,所以年引入了一种名为的新算法顾名思义,它是的加速版本作为尺度不变特征变换算法的加速版,算法在适中的条件下完成两幅图像中物体的匹配基本实现了实时处理,其快速的 Introduction to SURF (Speeded-Up Robust Features) 理论 在上一章中,我们看到了SIFT的关键点检...
摘要:为了解决这个问题,算法使用和可以通过参数来设定所以好的匹配提供的正确的估计被称为,剩下的被称为返回一个掩模,这个掩模确定了和点 Feature Matching + Homography to find Objects 联合使用特征提取和 calib3d 模块中的 findHomography 在复杂图像中查找已知对象. 之前在一张杂乱的图像中找到了一个对象(的某些部分)的位置.这些...
阅读 2976·2021-11-23 09:51
阅读 3608·2021-10-13 09:39
阅读 2490·2021-09-22 15:06
阅读 881·2019-08-30 15:55
阅读 3146·2019-08-30 15:44
阅读 1778·2019-08-30 14:05
阅读 3434·2019-08-29 15:24
阅读 2362·2019-08-29 12:44