ORB特征检测

ORB,全称Oriented FAST and Rotated BRIEF,是一种快速特征点提取和描述的算法。计算速度比SIFT快百倍,比SUFT快10倍。

从名称中可以看出,ORB本质是FAST角点检测算法和BRIEF特征描述符的集合。为什么要这样子呢?因为FAST特征点检测不涉及特征点描述,而BRIEF特征描述符有不具备旋转不变性、不具备尺度不变性、对噪声敏感等缺点,将二者结合可以优势互补,劣势相消。

# FAST特征点检测

import cv2 as cv

img = cv.imread('gyy.jpg',0)

# 用默认值初始化FAST对象
fast = cv.FastFeatureDetector_create()

# 寻找并绘制关键点
keyPoint = fast.detect(img,None)
img2 = cv.drawKeypoints(img, keyPoint, None, color=(255,0,0))

cv.imshow('dst',img2)
if cv.waitKey(0) & 0xff == 27:
    cv.destroyAllWindows()

# BRIEF特征描述符 

import cv2 as cv

img = cv.imread('simple.jpg',0)

# 初始化FAST检测器
fast = cv.xfeatures2d.StarDetector_create()

# 初始化BRIEF提取器
brief = cv.xfeatures2d.BriefDescriptorExtractor_create()

# 找到STAR的关键点
keyPoint = fast.detect(img,None)

# 计算BRIEF的描述符
keyPoint, describe = brief.compute(img, keyPoint)
print( brief.descriptorSize() )
print( describe.shape )

# 以上只是展示opencv中FAST与BRIEF的使用,以下才是ORB算法展示:

import cv2 as cv
 
img = cv.imread("A.jpg", 0)

orb = cv.ORB_create()

keyPoint, describe = orb.detectAndCompute(img, None)

posted @   东东咚咚东  阅读(168)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示