OpenCV基于ORB算法實現(xiàn)角點檢測
本文實例為大家分享了OpenCV基于ORB算法實現(xiàn)角點檢測的具體代碼,供大家參考,具體內(nèi)容如下
ORB算法是FAST算法和BRIEF算法的結(jié)合,ORB可以用來對圖像中的關(guān)鍵點快速創(chuàng)建特征向量,并用這些特征向量來識別圖像中的對象。
實例化ORB
orb = cv.ORB_create(nfeatures)
參數(shù):
- nfeatures:特征點的最大數(shù)量
利用orb.detectAndCompute()檢測關(guān)鍵點并計算
kp, des = orb.detectAndCompute(gray, None)
參數(shù):
- gray:進行關(guān)鍵點檢測的圖像(灰度圖像)
返回:
- kp:關(guān)鍵點信息,包括位置,尺度,方向信息
- des:關(guān)鍵點描述符,每個關(guān)鍵點BRIEF特征向量,二進制字符串。
將關(guān)鍵點檢測結(jié)果繪制在圖像上
cv.drawKeypoints(image, keypoints, outputimage, color, flags)
參數(shù):
- image: 原始圖像
- keypoints:關(guān)鍵點信息,將其繪制在圖像上
- outputimage:輸出圖片,可以是原始圖像
- color:顏色設(shè)置,通過修改(b,g,r)的值,更改畫筆的顏色,b=藍色,g=綠色,r=紅色。
- flags:繪圖功能的標識設(shè)置
1、cv2.DRAW_MATCHES_FLAGS_DEFAULT:創(chuàng)建輸出圖像矩陣,使用現(xiàn)存的輸出圖像繪制匹配對和特征點,對每一個關(guān)鍵點只繪制中間。
2、cv2.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG:不創(chuàng)建輸出圖像矩陣,而是在輸出圖像上繪制匹配對。
3、cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS:對每一個特征點繪制帶大小和方向的關(guān)鍵點圖形。
4、cv2.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS:單點的特征點不被繪制。
import cv2 as cv from matplotlib import pyplot as plt # 1.圖像讀取 img = cv.imread("1.jpg") gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) # 2.ORB角點檢測 # 2.1實例化ORB對象 orb = cv.ORB_create(nfeatures=1000) # 2.2 檢測關(guān)鍵點,并計算特征描述符 kp, des = orb.detectAndCompute(gray, None) print(des.shape) # 3.將關(guān)鍵點檢測在圖像上 img2 = cv.drawKeypoints(img, kp, None, flags=0) # 也可以添加 color 參數(shù)指定圖像顯示關(guān)鍵點的顏色,例如 img2 = cv.drawKeypoints(img, kp, None, color=(0, 0, 255), flags=0) # 4.繪制圖像 plt.figure(figsize=(10, 8), dpi=100) plt.imshow(img2[:, :, ::-1]) plt.xticks([]), plt.yticks([]) plt.show()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python中把元組轉(zhuǎn)換為namedtuple方法
在本篇文章里小編給大家整理的是一篇關(guān)于python中把元組轉(zhuǎn)換為namedtuple方法,有興趣的朋友們可以參考下。2020-12-12python動態(tài)監(jiān)控日志內(nèi)容的示例
本文介紹如何使用Python動態(tài)監(jiān)控程序日志的內(nèi)容,這里的動態(tài)指的是日志文件不斷的追加新的日志內(nèi)容,動態(tài)監(jiān)控是指監(jiān)控日志新追加的日志內(nèi)容2014-02-02Python通過fnmatch模塊實現(xiàn)文件名匹配
這篇文章主要介紹了Python通過fnmatch模塊實現(xiàn)文件名匹配,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09python利用Excel讀取和存儲測試數(shù)據(jù)完成接口自動化教程
這篇文章主要介紹了python利用Excel讀取和存儲測試數(shù)據(jù)完成接口自動化教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04python利用os模塊編寫文件復制功能——copy()函數(shù)用法
這篇文章主要介紹了python利用os模塊編寫文件復制功能——copy()函數(shù)用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07pytest自動化測試中的fixture的聲明和調(diào)用
這篇文章主要為大家介紹了pytest自動化測試中的fixture的聲明和調(diào)用,文中含有詳細示例操作有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10