日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

OpenCV(24)角点检测3 -- ORB

發(fā)布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV(24)角点检测3 -- ORB 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一、基礎理論

1、原理

?2、BRIEF算法介紹

1、介紹

2、過程

3、API介紹

?1、ORB_create函數(shù)(初始化orb檢測器)

2、orb.detectAndCompute函數(shù)(檢測關鍵點并計算)

3、cv.drawKeypoints函數(shù)(繪制關鍵點)

二、代碼

三、效果


一、基礎理論

1、原理

????????ORB算法結合了FastBrief算法,提出了構造金字塔為Fast特征點添加了方向,從而使得關鍵點具有了尺度不變性旋轉不變性。具體流程描述如下:

構造尺度金字塔,金字塔共有n層,與SIFT不同的是,每一層僅有一幅圖像。第s層的尺度為:

?

?(每層圖像大小和尺度有關)

1、在不同的尺度上利用Fast算法檢測特征點,采用Harris角點響應函數(shù)根據(jù)角點的響應值排序選取前N個特征點,作為本尺度的特征點
2、計算特征點的主方向,計算以特征點為圓心半徑為r的圓形鄰域內的灰度質心位置,將從特征點位置質心位置方向特征點的主方向。??????

計算方法:??

質心位置:

主方向:?

?2、BRIEF算法介紹

1、介紹

????????BRIEF是一種特征描述子提取算法并非特征點的提取算法一種生成二值化描述子的算法,不提取代價低,匹配只需要使用簡單的漢明距離(Hamming Distance)利用比特之間的異或操作就可以完成。因此,時間代價低,空間代價低,效果還挺好是最大的優(yōu)點

2、過程

1、圖像濾波︰原始圖像中存在噪聲時,會對結果產生影響,所以需要對圖像進行濾波,去除部分噪聲
2、選取點對以特征點為中心取S*S的鄰域窗口在窗口內隨機選取N組點對, 一般N=128,256,512,默認是256,關于如何選取隨機點對,提供了五種形式,結果如下所示:

?

?

?

3、API介紹

?1、ORB_create函數(shù)(初始化orb檢測器)

cv2.ORB_create(nfeatures = 500,scaleFactor = 1.2,nlevels = 8,edgeThreshold = 31,firstLevel = 0,WTA_K = 2,scoreType = HARRIS_SCORE,patchSize = 31,fastThreshold = 20)

參數(shù):

nfeatures:特征點最大數(shù)量

返回:

orb對象

orb = cv.ORB_create()

2、orb.detectAndCompute函數(shù)(檢測關鍵點并計算)

kp , des= orb.detectAndCompute(img, None)

參數(shù):
img:進行關鍵點檢測的圖像

返回:
kp關鍵點信息,包括位置,尺度,方向信息
des:關鍵點描述符,每個關鍵點BRIEF特征向量,二進制字符串

kp , des= orb.detectAndCompute(img, None)       #返回關鍵點信息及描述符

3、cv.drawKeypoints函數(shù)(繪制關鍵點)

cv.drawKeypoints (image,keypoints,outputimage, color,flags)
img = cv.drawKeypoints(img, kp, None, color=(0,255,0), flags=0)

二、代碼

# ORB角點檢測
import cv2 as cvimg = cv.imread('Resource/1.jpg')
cv.imshow("img", img)# 1、初始化ORB檢測器
orb = cv.ORB_create(200)
# 2、用ORB尋找關鍵點
kp , des= orb.detectAndCompute(img, None)       #返回關鍵點信息及描述符
# 3、僅繪制關鍵點的位置,而不繪制大小和方向
dst = cv.drawKeypoints(img, kp, None, color=(0,255,0), flags=0)cv.imshow("dst", dst)cv.waitKey(0)

三、效果

?

?

?

總結

以上是生活随笔為你收集整理的OpenCV(24)角点检测3 -- ORB的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。