SIFT&OpenCV算法之特征点可视化

SIFT特征是一种基于物体局部外观的兴趣点描述符,具有尺度、旋转不变性和光线、噪声容忍度高的特性。它适用于物体识别、机器人地图感知与导航、影像缝合等应用,即使在部分遮挡的情况下也能保持较高的检测率。SIFT特征信息量大,适合在海量数据库中快速准确匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尺度不变特征变换 (Scale-invariant feature transform , SIFT)

SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高.
基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认.使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位.在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算.SIFT特征的信息量大,适合在海量数据库中快速准确匹配,其應用範圍包含物體辨識、機器人地圖感知與導航、影像縫合、3D模型建立、手勢辨識、影像追蹤和動作比對。.

因SIFT算法有专利问题,需要将OpenCV降板(笔者降至3.4.2)后才能使用

且在资料夹中存放欲可视化图片即可

import numpy as np
import cv2
img = cv2.imread('freerider.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
# 在图像中查找关键点
kp = sift.detect(gray , None) 
# 在关键点的位置上绘制小圆圈
img= cv2.drawKeypoints(img , kp , img)
# 在关键点的位置上绘制一个大小为keypoint的小圆圈
# img = cv2.drawKeypoints(gray , kp , img , flags = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow('img',img)
cv2.waitKey(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值