OpenCV中的二进制鲁棒独立基本特征——BRIEF
生活随笔
收集整理的這篇文章主要介紹了
OpenCV中的二进制鲁棒独立基本特征——BRIEF
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenCV中的二進制魯棒獨立基本特征——BRIEF
- 1. 效果圖
- 2. 源碼
- 參考
這篇博客將介紹OpenCV中的二進制魯棒獨立基本特征。BRIEF是一種更快的特征描述符計算和匹配方法。它還提供了較高的識別率,除非存在較大的面內旋轉。
- BRIEF Binary Robust Independent Elementary Features 二進制魯棒獨立基本特征
- BRIEF是一個特性描述符,它不提供任何查找特征的方法。因此需要使用其他特征檢測器,如SIFT、SURF等,建議使用CenSurE檢測器。
- CenSurE 探測器:也稱為Start Detector星探測器,是一種快速檢測器,檢測效果甚至比SURF更好。
1. 效果圖
原始圖如下:
Star Detector星檢測器效果圖如下:
2. 源碼
# OpenCV中的二進制魯棒獨立基本特征
# BRIEF Binary Robust Independent Elementary Features 二進制魯棒獨立基本特征
# BRIEF是一種更快的特征描述符計算和匹配方法。它還提供了較高的識別率,除非存在較大的面內旋轉。
# CenSurE探測器:也稱為Start Detector星探測器,是一種快速檢測器,檢測效果甚至比SURF點的檢測效果更好。
# BRIEF是一個特性描述符,它不提供任何查找特征的方法。因此需要使用其他特征檢測器,如SIFT、SURF等。建議使用CenSurE檢測器import cv2origin = cv2.imread('images/simple.jpg')
cv2.imshow("origin", origin)img = cv2.cvtColor(origin, cv2.COLOR_BGR2GRAY)# 初始化星檢測器
star = cv2.xfeatures2d.StarDetector_create()# 初始化BRIEF描述符檢測器
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()# 找到星檢測器的關鍵點
kp = star.detect(img, None)
img2 = cv2.drawKeypoints(origin, kp, origin, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("star res", img2)
print('star keypoints: ', len(kp))# 計算BRIEF的描述符
kp, des = brief.compute(img, kp)
print('brief keypoints: ', len(kp))
print('brief shape: ', des.shape)img3 = cv2.drawKeypoints(origin, kp, origin, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("brief res", img3)
cv2.waitKey(0)
參考
- https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_brief/py_brief.html#brief
總結
以上是生活随笔為你收集整理的OpenCV中的二进制鲁棒独立基本特征——BRIEF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV中的快速特征检测——FAST
- 下一篇: SIFT和SURF的替换算法——ORB