还剩37页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
算法解析与应用SIFT欢迎参加算法解析与应用的深度课程(尺度不变特征变换)是计SIFT SIFT算机视觉领域的一项基础性技术,在图像匹配、物体识别等应用中有着广泛应用本课程将带领大家深入理解算法的原理、实现和应用场景SIFT课程概述课程内容本课程聚焦于算法的原理、实现方法及其在实际场景中的应用我们将SIFT从理论基础开始,逐步深入到算法细节和编程实现学习目标通过本课程,您将完全掌握特征提取的核心理论,理解算法的每个步SIFT骤,并能够应用到实际项目中应用领域算法广泛应用于计算机视觉、图像处理和目标识别等领域,是现代视觉SIFT系统的基础组件之一前置知识算法简介SIFT算法全称全称为尺度不变特征转换(),是一种在SIFT Scale-Invariant FeatureTransform计算机视觉中用于检测和描述图像局部特征的算法提出者与发展算法由教授于年首次提出,并在年进行了完善和系统SIFT DavidG.Lowe19992004化,成为后来众多特征提取算法的基础核心思想的核心思想是在不同尺度空间中寻找稳定的特征点,通过多层次的图像分析来实现SIFT对变形的鲁棒性主要特点该算法最大的特点是对图像的旋转、尺度变化和光照变化具有良好的不变性,使其在复杂环境下依然能可靠地提取特征的历史背景SIFT1年1999在国际计算机视觉会议上首次发表了关于算法的David LoweICCV SIFT论文,提出了算法的基本框架和思想这一创新性工作立即引起了学术界的广泛关注2年2004在《国际计算机视觉杂志》上发表了完整的算法论文,对Lowe IJCVSIFT算法进行了理论完善与总结,使其成为一个成熟的技术方案3年代2010随着计算机视觉技术的快速发展,逐渐成为该领域的基础算法,被广SIFT泛应用于各种应用场景中,并启发了许多后续改进算法4现今尽管深度学习方法已在许多视觉任务中取得突破,仍然是特征匹配的SIFT重要基准算法,在许多实际应用中依然表现出色的特点SIFT尺度不变性旋转不变性光照不变性算法能够在不同尺度下通过计算特征点的主方向,特征通过梯度方向的统SIFT SIFT识别相同的特征点,对图像生成的特征描述对图像计而非直接使用像素值,对SIFT缩放具有极强的鲁棒性这旋转不敏感无论图像如何光照变化具有一定程度的稳使得算法可以在物体大小变旋转,都能提取到相同的特定性特征向量的归一化进化的情况下依然工作良好征描述符一步增强了这一特性视角不变性在视角变化不太剧烈的情况下,特征能够保持相对SIFT稳定,这使其适用于从不同角度拍摄的同一场景的图像匹配算法在计算机视觉中的地位SIFT开创性特征描述算法奠定了局部特征描述的理论基础后续算法的基础启发了、等众多算法SURF ORB精度与效率的平衡代表成为评估新算法的基准大规模图像匹配的基准方法广泛应用于实际系统算法的出现彻底改变了计算机视觉领域的研究方向,它提供了一种可靠的方法来描述图像中的局部特征,为后续的发展奠定了坚实基础尽管新的算法不SIFT断涌现,依然是评估新方法性能的重要参考基准SIFT在实际应用中,的可靠性和稳定性使其成为许多商业系统的首选算法,特别是在对精度要求较高的场景中它的理论框架也为深度学习时代的特征提取方SIFT法提供了重要启示算法基本步骤SIFT尺度空间极值检测构建高斯差分金字塔,在图像的不同尺度空间中寻找局部极值点,作为潜在的特征点候选这一步确保了算法对尺度变化的不变性关键点精确定位对初步检测的极值点进行精确定位,滤除不稳定的边缘响应点和低对比度点,保留高质量的特征点方向分配为每个关键点分配一个或多个方向,基于局部图像梯度方向的统计这确保了特征描述对旋转的不变性特征描述符生成基于关键点及其方向,生成一个高维向量描述该点周围区域的梯度分布特性,形成独特的指纹尺度空间理论尺度空间定义Lx,y,σ=Gx,y,σ*Ix,y高斯函数Gx,y,σ=1/2πσ²e^-x²+y²/2σ²尺度参数控制平滑程度,越大平滑效果越σσ强卷积操作将高斯核与原图像进行卷积运算*尺度空间理论是算法的核心基础,它通过对图像应用不同程度的高斯模SIFT糊,创建一系列具有不同尺度特性的图像这种多尺度表示使我们能够分析图像中在不同尺度下表现出的结构特征高斯函数是唯一能够实现尺度空间的线性核函数,它具有不产生新极值点和圆对称等重要特性尺度参数决定了平滑的程度,越大,图像中的细节被平σσ滑掉越多,只保留大尺度结构高斯金字塔构建组内尺度变化同一组内按固定比例递增σk组间图像下采样每组之间图像尺寸减半多组多尺度结构通常组,每组个尺度图像4-55-6构建高斯金字塔是算法的第一步,它创建了图像的多尺度表示在每个组内,我们保持图像尺寸不变,但通过增加高斯函数SIFT Octave的值来增加平滑程度,通常按固定比例(一般)递增σσk k=√2在不同组之间,我们对图像进行降采样(通常是将尺寸减半),然后在新的更小尺寸图像上再次应用一系列值递增的高斯模糊这种策略σ大大提高了计算效率,同时保持了对不同尺度特征的敏感性高斯差分金字塔()DoG定义作用DoG DoG,即近似拉普拉斯高斯()算子,检测Dx,y,σ=Lx,y,kσ-Lx,y,σLoG相邻尺度高斯图像的差值斑点特征特征检测意义计算效率响应在图像的边缘、角点等特征结通过简单相减计算,避免了直接计算二DoG构处达到极值阶微分的复杂性尺度空间极值检测三维检测空间算法将极值点检测扩展到三维空间图像的、坐标加上尺度维度这种方法使得算法能够找到在位置和尺度上都稳定的特征点SIFT-x yσ26邻域比较在金字塔中,每个点与其空间域的个相邻点和上下相邻尺度对应的个点进行比较,总计比较个点只有同时大于或小于所有个比较点的极值点才被保DoG89+9=182626留初步关键点通过极值检测,我们能够在图像中找到大量潜在的特征点候选这些点往往对应图像中的角点、斑点或其他独特的局部结构,它们在不同尺度下都表现出明显的特征关键点精确定位亚像素精确定位通过泰勒展开对函数进行二阶近似,计算极值点的精确亚像素位置DoG和尺度这一步提高了特征点定位的精度,使特征点不再局限于整数像素位置低对比度点剔除计算精确位置后的响应值,如果其绝对值小于阈值(通常为DoG),则认为该点对比度过低,不够稳定,将其剔除这一步骤
0.03保证了特征点的显著性边缘响应点剔除计算矩阵的特征值比例,剔除主曲率比过大的点,这些Hessian点通常位于边缘上而非角点处这一步确保保留的是稳定的角点特征而非边缘点亚像素精确定位公式泰勒展开公式极值位置求解对比度检验利用泰勒级数将函数在检测到对上述展开式求导并令其等于零,可以将偏移量代回泰勒展开式,得到修正后DoG Dx的极值点周围展开至二阶项求得极值点的精确偏移量的极值̂̂̂Dx=D+∂D^T/∂x·x+x=-∂²D/∂x²^-1·∂D/∂x Dx=D+1/2·∂D^T/∂x·x1/2·x^T·∂²D/∂x²·x如果任一维度上的偏移量大于,则需当̂时,认为该点对比度过
0.5|Dx|
0.03其中表示相对于检测点的偏要移动到相邻点重新计算低,将其剔除x=x,y,σ^T移量边缘响应消除2×2r矩阵主曲率比Hessian在关键点位置计算函数的二阶导数矩阵,分两个特征值的比值反映了点周围区域的形状特DoG r析局部曲率特性征10阈值判断当时保留该点,否则认为是边缘r+1²/r10点予以剔除在真实图像中,算子除了在角点处产生极值外,在边缘处也会产生极值响应然而,边缘上的点DoG不够稳定,容易受到噪声影响矩阵的特征值分析提供了区分角点和边缘点的有效方法Hessian对于边缘点,矩阵的特征值在边缘方向很小,而在垂直边缘方向很大,因此两个特征值的比Hessian值会很大通过设置阈值条件(相当于),我们可以有效地剔除不稳定的边r r+1²/r10r10缘点,只保留真正的角点特征方向分配目的赋予每个关键点一个或多个参考方向,实现旋转不变性方法基于关键点邻域梯度方向的统计分析统计范围以关键点为中心,半径为关键点尺度倍的圆形区域
1.5加权方式使用高斯函数对梯度幅值进行加权,距离中心越远权重越小方向分配是实现特征旋转不变性的关键步骤为每个关键点分配一个主方向后,SIFT所有后续的操作(如特征描述符计算)都将相对于这个方向进行,从而消除了旋转的影响此步骤详细分析了关键点周围区域的梯度分布,通过寻找梯度方向直方图中的峰值来确定主方向这种基于局部图像结构的方向计算使得即使图像发生旋转,特征描述符也能保持一致方向分配步骤梯度计算在关键点所在尺度的高斯平滑图像上,计算关键点邻域内每个像素的梯度方向和幅值,捕获局部区域的结构特性方向直方图构建将°平均分为个方向区间(每°一个柱),按高斯加权统计梯度方向分布,形成柱的方向直方图360361036峰值方向确定找出直方图中的最大值,确定为关键点的主方向,代表该区域最显著的结构方向辅助方向判定如有其他方向柱的值大于最大值的,也将这些方向作为辅助方向,为同一位置创建多个特征点80%梯度计算公式梯度幅值计算梯度方向计算高斯加权在关键点所在的高斯尺度空间图像上,同时计算梯度的方向角为了增加中心区域的重要性,对梯度幅L使用有限差分近似计算每个像素点的梯值进行高斯加权⁻θx,y=tan¹[Lx,y+1-Lx,y-度幅值权重随着距离关键点距离的增加而递1/Lx+1,y-Lx-1,y]减,形成一个平滑的关注区域,中心影mx,y=√[Lx+1,y-Lx-1,y²+梯度方向指向图像强度增加最快的方响最大Lx,y+1-Lx,y-1²]向,范围为°至°此方向信息0360这一计算捕获了像素点周围的变化强是构建特征描述符的基础度,值越大表示该处边缘特征越明显特征描述符生成特征描述符是一个维的向量,它通过分析关键点周围区域的梯度分布来捕获该区域的独特特征描述符的维度构成为SIFT128××,其中×表示将关键点周围划分为个子区域,每个子区域统计个方向的梯度直方图448=12844168这种高维特征向量能够详细描述关键点周围的纹理和结构信息,提供了足够的区分能力来识别相似的特征点同时,描述符的设计也考虑了对光照变化、小视角变化的鲁棒性特征描述符的构建步骤1计算区域确定以关键点为中心,根据关键点的尺度和方向,确定一个×像素的采样窗口关1616键是该窗口会根据关键点的主方向进行旋转,以实现旋转不变性2子区域划分将×的窗口进一步划分为×个子区域,每个子区域包含×个像素点这16164444种分区设计在保留局部细节的同时也保持了一定的空间结构关系3梯度直方图计算在每个子区域内,计算方向的梯度直方图,统计该区域内梯度方向的分布情况梯8度幅值同样采用三线性插值分配给相邻的方向柱和空间区域4描述符生成与归一化将所有子区域的梯度直方图串联成一个维的向量,并进行归一化处理以减少光照128变化的影响最终形成一个独特的、鲁棒的特征描述符描述符的优化处理初次归一化将维特征向量归一化为单位向量,使其对线性光照变化(如对比度128调整)不敏感归一化后,描述符的长度变为,只保留方向分布的相1对关系阈值处理为减少非线性光照变化(如相机饱和或阴影)的影响,将归一化后的特征向量中大于的分量截断为这一步减弱了过度强烈的梯
0.
20.2度对描述符的影响再次归一化对截断后的向量进行二次归一化,恢复单位长度这样处理后的描述符在保持区分性的同时,增强了对各种光照变化的不变性特征点匹配SIFT欧氏距离计算最近邻次近邻比比值阈值设置/值法计算两个特征描通常将阈值设置在SIFT述符之间的欧氏距为提高匹配可靠性,之间,较小
0.6-
0.8离,作为相似度的度计算待匹配特征点到的阈值会产生更少但量距离越小,表示最近邻和次近邻的距更可靠的匹配,较大两个特征点越相似,离比值只有当比值的阈值则会产生更多越可能是同一物体上小于阈值时,才认为但可能包含错误的匹的对应点匹配可靠配空间一致性验证通过等算法RANSAC进一步筛选匹配点对,确保它们在空间上满足一致的变换关系,排除孤立的错误匹配特征匹配示例SIFT正确匹配示例在理想情况下,能够在旋转、缩放和部分视角变化的图像之间找到准确的特征点对应关系这些正确匹配通常表现为连接两幅图像中相同物理点的线条呈现出一致的方SIFT向和长度模式错误匹配示例在复杂场景或大视角变化下,可能出现错误匹配这些错误通常表现为与主要匹配方向不一致的线条等算法可以有效识别并剔除这些错误匹配,提高整体匹配质RANSAC量极端视角变化在极端视角变化的情况下,的匹配性能会下降,但仍能找到部分可靠匹配点这种鲁棒性使成为各种视觉任务中不可或缺的工具,特别是在需要处理不同拍摄条件SIFT SIFT的场景中算法复杂度分析SIFT时间复杂度算法的时间复杂度为,其中为图像像素数主要计算开销来自于高斯金字塔SIFT ON²N的构建和特征点检测过程对于一张普通分辨率的图像,处理时间通常在秒级别关键点数量一般中等复杂度的图像中,算法会提取几百至几千个关键点关键点数量与图像的SIFT纹理丰富度、对比度和内容复杂度相关过多的关键点会增加后续匹配的计算负担特征向量每个关键点对应一个维的特征描述符,占用个浮点数的存储空间对于包SIFT128128含个关键点的图像,特征描述需要约的内存空间1000500KB内存占用算法在运行过程中需要存储高斯金字塔和金字塔,对内存要求适中对于大多SIFT DoG数现代计算设备,的内存占用不是限制因素SIFT算法的局限性SIFT计算复杂度较高算法涉及多尺度图像处理和高维特征计算,计算复杂度较高一张普通图SIFT像的处理时间可能需要几百毫秒至数秒,难以满足实时应用的需求对计算资源要求较高由于需要构建图像金字塔和计算高维特征向量,对处理器和内存资源的要SIFT求较高,在资源受限的嵌入式系统或移动设备上实现完整版本较为困难不适合实时处理应用受限于其计算复杂度,不适合需要高帧率处理的实时应用场景,如视频跟SIFT踪、增强现实等,除非采用硬件加速或简化版本边缘区域特征不稳定在图像边缘区域,由于缺乏完整的环绕区域信息,特征的提取和描述往往SIFT不够稳定,可能导致边缘物体的匹配精度下降算法优化方向SIFT降低特征维度通过等方法降低维特征向量的维度PCA128加速关键点检测优化极值点检测和筛选算法,减少计算量并行计算优化利用多核或进行并行计算CPU GPU硬件加速实现开发专用硬件或实现FPGA与深度学习结合结合等深度学习方法提高性能CNN变种算法SIFTSURF算法加速稳健特征()是的一个重要变种,通过积分图像和盒式滤波器近似高斯滤波,大大提高了计算效率保持了的大部分不Speeded-Up RobustFeatures SIFT SURF SIFT变性,但处理速度提升了倍3-5PCA-SIFT算法对的最大改进在于使用主成分分析()将维特征向量降至维左右这种降维不仅减少了存储空间,还提高了特征匹配的速度,但可能会稍微降PCA-SIFT SIFTPCA12820低对变形的鲁棒性GPU-SIFT实现利用图形处理器的并行计算能力,将算法的各个步骤在上实现这种硬件加速方法可以将处理速度提升倍,使能够应用于近实时的场GPU-SIFT SIFTGPU10-100SIFT景,如视频处理和增强现实与比较SIFT SURF算法特性SIFT SURF准确度较高稍低但接近SIFT计算速度较慢快倍3-5特征维度维维或维12864128旋转不变性完全支持可选()Upright-SURF尺度不变性优秀稍弱但仍良好和是两种最常用的局部特征描述算法,它们在原理和应用上有很多相似之处,但也存在明显差异通过构建高斯金字塔和空间进行特征提取,而则利用积分图SIFT SURFSIFT DoGSURF像和矩阵近似快速计算Hessian总体来说,在特征匹配的准确性上略胜一筹,特别是在处理大角度旋转和复杂变形时;而的最大优势在于计算效率,它能在保持较高精度的同时显著提升处理速度,更适合对SIFTSURF时间敏感的应用与比较SIFT ORB计算效率特征描述精度与应用基于浮点运算,计算量大,通常需使用维浮点向量描述特征,存在精度上优于,特别是在处理SIFT SIFT128SIFT ORB要几百毫秒处理一张中等大小的图像储和匹配都较为耗时使用位复杂变形时虽然精度稍低,但其ORB256ORB(二进制字符串作为描述符,通过汉明距极高的效率使其成为移动设备和实时系ORB OrientedFAST andRotated)采用二进制描述符和高效的离(简单的位运算)进行匹配,极大地统的首选曾受专利保护(已于BRIEF SIFT角点检测,计算速度比快近加速了特征比对过程年到期),而作为完全开源FAST SIFT2020ORB倍,能够实现实时处理算法被广泛采用100算法应用领域SIFT目标识别图像拼接通过匹配特征点识别图像中的特定物体利用特征匹配重叠区域,创建无缝SIFT全景图像重建3D从多视角图像中重建物体的三维结构增强现实机器人导航实时跟踪现实世界中的特征点以叠加虚拟内容帮助机器人识别环境特征进行定位和导航图像拼接应用特征点提取与匹配在相邻图像中检测特征并匹配SIFT变换矩阵计算基于匹配点估计图像间的几何变换图像变形与拼合将图像投影到共同平面并融合边界图像拼接是算法最成功的应用之一通过在多张重叠图像中提取并匹配特征点,可以准确计算出图像之间的几何关系,实现精确SIFT SIFT的图像对齐和融合这种技术被广泛应用于创建全景照片、卫星图像拼接和医学图像配准等领域的强大之处在于即使图像之间存在旋转、缩放和部分视角变化,仍能找到可靠的匹配点结合等鲁棒估计算法,可以过滤掉SIFT RANSAC错误匹配并准确估计变换矩阵,最终实现无缝的图像拼接效果目标识别应用商标识别人脸特征点产品质检特征可以有效捕捉商标的独特纹理和虽然现代人脸识别多采用深度学习方法,在工业质量控制中,可用于产品表面SIFT SIFT结构特征,即使在不同尺度、角度和部分但仍在人脸特征点定位和跟踪中发挥缺陷检测通过比较产品表面的特征SIFT SIFT遮挡的情况下仍能准确识别这使得作用它能够稳定地识别眼角、鼻尖等特与标准模板,能够自动识别划痕、凹陷等SIFT成为商标检测和保护系统的理想选择征点,为表情分析和三维面部重建提供支异常,提高检测效率和准确率持重建应用3D多视角图像采集从不同角度拍摄目标物体,确保有足够的视角覆盖和图像重叠高质量的输入图像是成功三维重建的前提条件,通常需要控制光照和相机参数特征点匹配使用算法在所有图像之间提取并匹配特征点,建立起不同视角之间的对应SIFT关系这一步骤建立了重建过程的基础数据相机位置恢复基于特征点匹配结果,估计每张图像的相机参数(内参和外参),重建拍摄时的相机位置和朝向这一过程常称为运动恢复结构()SfM点云生成与表面重建通过三角测量计算匹配特征点的三维坐标,形成点云,然后应用表面重建算法生成完整的三维模型,最后进行纹理映射完成视觉效果机器人与自动驾驶应用算法在机器人导航和自动驾驶领域有着广泛应用在视觉(同步定位与地图构建)系统中,特征用于识别环境中的稳SIFT SLAMSIFT定特征点,帮助机器人或自动驾驶汽车理解周围环境并确定自身位置通过跟踪这些特征点的移动,系统可以估计相机(机器人)的运动轨迹,并随时间构建环境的三维地图的尺度和旋转不变性使SIFT其特别适合于处理机器人在真实世界中面临的复杂视觉条件,如视角变化、部分遮挡和光照变化医学图像处理应用
99.2%
3.5x配准准确率诊断效率提升算法在医学图像配准中可实现极高的准确自动化配准与比对系统提升医生诊断效率SIFT率85%早期病变检出率基于的图像比对可提高早期病变检出率SIFT在医学图像处理领域,算法扮演着重要角色医学图像配准是其最主要的应用之一,它可以SIFT将不同时间、不同设备或不同模态(如、、)采集的医学图像精确对齐,帮助医生进CT MRIPET行病情变化分析和多模态信息融合算法的稳定性使其能够在医学图像的细微差异中找到可靠的对应点,即使在存在器官形变、SIFT患者姿势变化或成像条件差异的情况下也能准确配准此外,在手术导航、病变自动识别和医学图像检索等应用中,同样发挥着重要作用SIFT安防监控应用人员跟踪与识别异常行为检测通过识别固定特征点跟踪监控区域内的基于特征点运动模式分析识别可疑活动人员活动场景变化检测视频稳定通过特征比对发现监控环境中的异常变利用特征点匹配消除监控摄像机抖动化增强现实应用实景标记识别算法能够识别现实世界中的特定标记、图像或物体,作为放置虚拟内容的锚点这SIFT种特性使增强现实系统可以精确地将虚拟元素与现实场景对齐实时特征跟踪通过持续跟踪场景中的特征点,系统能够实时了解相机位置和朝向的变化,保持SIFT AR虚拟内容在正确位置,即使在用户移动或场景变化的情况下虚实融合定位基于特征匹配计算的相机位姿信息,增强现实系统可以精确地确定虚拟内容的位置SIFT和大小,实现虚拟对象与真实环境的无缝融合和正确遮挡关系工业辅助AR在工业环境中,基于的系统可以辅助装配、维修和培训系统识别设备部件,并SIFT AR在工人视野中叠加操作指导,提高工作效率和准确性算法实现平台SIFT实现实现加速版本OpenCV MATLABGPU是实现算法最广泛使用的平提供了计算机视觉工具箱中的通过或实现的加速版OpenCV SIFT MATLAB CUDAOpenCL GPU台,提供了和接口实现,使用简单易上手可以显著提高处理速度,一些实现能C++Python OpenCV SIFTMATLABSIFT的实现经过优化,性能良好,适合大的矩阵运算优化使执行效率较高,并达到实时或接近实时的性能版本特SIFT SIFTGPU多数研究和工业应用其开源特性使其成且其丰富的可视化功能方便算法分析和结别适合处理高分辨率图像或视频流,为对为学习和开发的首选平台果展示,适合教学和研究性能要求高的应用提供解决方案中的实现OpenCV SIFT类基本接口参数配置常见问题与解决SIFT提供了类,主要包含创建对象时可以配置多个参数使用的实现时可能遇到的OpenCV`cv::SIFT`SIFT-OpenCV SIFT创建特征检测器、检测关键点和计算描限制检测的特征点数量常见问题包括特征点过多导致计算nfeatures--述符三个核心功能典型使用流程是先每组的层数缓慢可以减小或提高nOctaveLayers-nfeatures创建对象,然后调用方法对比度阈值特征点质量不SIFT detectcontrastThreshold-contrastThreshold-检测关键点,再调用方法计边缘响应阈值高尝试调整和compute edgeThreshold-contrastThreshold算描述符,或直接使用初始高斯模糊的值这些参数匹配效果不佳可以sigmaσedgeThreshold-一步完成可以根据具体应用需求调整,以平衡特细调匹配器参数或更换匹配策略detectAndCompute FLANN征点数量和质量确保使用或以上版本的
3.X
4.X,以获得对的完整支持OpenCVSIFT实现代码示例Python SIFTimportcv2import numpyas npimportmatplotlib.pyplot asplt#读取图像img1=cv
2.imreadimage
1.jpg,cv
2.IMREAD_GRAYSCALEimg2=cv
2.imreadimage
2.jpg,cv
2.IMREAD_GRAYSCALE#创建SIFT对象sift=cv
2.SIFT_create#检测SIFT特征点并计算描述符kp1,des1=sift.detectAndComputeimg1,Nonekp2,des2=sift.detectAndComputeimg2,None#使用FLANN匹配器进行特征匹配FLANN_INDEX_KDTREE=1index_params=dictalgorithm=FLANN_INDEX_KDTREE,trees=5search_params=dictchecks=50flann=cv
2.FlannBasedMatcherindex_params,search_paramsmatches=flann.knnMatchdes1,des2,k=2#应用Lowes比率测试筛选优质匹配good_matches=[]for m,n inmatches:if m.distance
0.7*n.distance:good_matches.appendm#绘制匹配结果img_matches=cv
2.drawMatchesimg1,kp1,img2,kp2,good_matches,None,flags=cv
2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS#显示结果plt.figurefigsize=15,10plt.imshowimg_matchesplt.titleSIFT特征匹配结果plt.show。
个人认证
优秀文档
获得点赞 0