cv2 BRIEF特征描述符

本篇博客主要介绍cv2中中的BRIEF特征描述符。

首先解决cv2中找不到  cv2.xfeature2d 的问题。

在 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到

下载所需版本,复制到python安装目录下的Lib\site-packages目录,然后在cmd中cd到Lib\site-packages目录,运行pip install  opencv_python-3.x.0+contrib-cpxx-cpxxm-win  xxxxx.whl即可,已经安装的版本会被自动卸载,重新安装为指定的版本。

 

出现 下列错误解决方案:

ImportError: numpy.core.multiarray failed to import

 

解决方案:

conda remove numpy
conda install numpy

示例代码:

# encoding:utf-8
'''
算法使用的是已经平滑后的图像
BRIEF是一种特征描述符,它不提供查找特征的方法,所以需要使用其他的特征检测器,比如SIFT和SURF等
推荐使用CenSurf 特征检测器,这种算法很快,而且BRIEF算法对CenSurf关键点的描述效果比SURF关键点的描述更好
BRIED是一种对特征点描述符运算和匹配的快速方法,这种算法可以实现很高的识别率,除非出现了平面内的大旋转。
'''
import cv2
import numpy as np


img = cv2.imread('../data/blox.jpg', 0)

# 初始化FAST检测器
star = cv2.xfeatures2d.StarDetector_create()
# 初始化BRIEF特征描述符
breif = cv2.xfeatures2d.BriefDescriptorExtractor_create()

# 通过star找到关键点
kp = star.detect(img, None)
# 通过BRIEF计算描述子
kp, des = breif.compute(img, kp)

print(breif.descriptorSize())
print(des.shape)

运行结果:


32
(33, 32)

猜你喜欢

转载自blog.csdn.net/github_39611196/article/details/81159394