opencv图像特征检测及匹配(harris,sift,surf,fast,breif,orb,BFmatch,FlannBasedMatcher)

本文介绍了OpenCV库中用于图像特征检测的各种方法,包括Harris角点检测、SIFT、SURF、FAST、BRIEF、ORB,并探讨了BFMatcher和FlannBasedMatcher两种特征匹配算法的应用。通过示例展示如何筛选有效匹配,实现稳定的效果。
本文简单概括各种算法的提出背景及opencv实现,对具体原理不做讨论


一般而言,一个物体的角点最能够代表物体的特征,所以所谓的特征检测又叫角点(Corner)检测
harris是最早提出的特征提取算法:
opencv实现如下:


dst=cv2.cornerHarris(gray,blockSize=2,ksize=5,k=0.04)
# blockSize -检测的临点数
# •ksize - sobel边缘检测的核
# •k - 目标函数的一个参数(一般取值较小)


sift:harris Corner算法能够解决旋转不变性问题,但不能解决尺度变化问题,由此背景提出了sift算法
opencv实现如下:


sift=cv2.xfeatures2d.SIFT_create()
kp,des=sift.detectAndCompute(gray,None) #计算描述子
其中kp指关键点 des指关键点的特征描述


surf:尽管sift的计算效果较好,但是计算速度较慢 surf(speed up robust features)算法是一个加速算法
速度是sift算法的3倍。
opencv实现如下:


# 400 是Hessian矩阵的阈值,阈值越大能检测的特征就越少
surf=cv2.xfeatures2d.SURF_create(400)
# None为mask参数
kp,des=surf.detectAndCompute(gray,None)


下面结合surf算法做一个简单的测试,上代码:


import cv2
import numpy as np
import matplotlib.pyplot as plt


img=cv2.imread('../images/example_01.jpg')
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# Her
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值