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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构