OpenCV基于ORB算法實(shí)現(xiàn)角點(diǎn)檢測
本文實(shí)例為大家分享了OpenCV基于ORB算法實(shí)現(xiàn)角點(diǎn)檢測的具體代碼,供大家參考,具體內(nèi)容如下
ORB算法是FAST算法和BRIEF算法的結(jié)合,ORB可以用來對圖像中的關(guān)鍵點(diǎn)快速創(chuàng)建特征向量,并用這些特征向量來識(shí)別圖像中的對象。
實(shí)例化ORB
orb = cv.ORB_create(nfeatures)
參數(shù):
- nfeatures:特征點(diǎn)的最大數(shù)量
利用orb.detectAndCompute()檢測關(guān)鍵點(diǎn)并計(jì)算
kp, des = orb.detectAndCompute(gray, None)
參數(shù):
- gray:進(jìn)行關(guān)鍵點(diǎn)檢測的圖像(灰度圖像)
返回:
- kp:關(guān)鍵點(diǎn)信息,包括位置,尺度,方向信息
- des:關(guān)鍵點(diǎn)描述符,每個(gè)關(guān)鍵點(diǎn)BRIEF特征向量,二進(jìn)制字符串。
將關(guān)鍵點(diǎn)檢測結(jié)果繪制在圖像上
cv.drawKeypoints(image, keypoints, outputimage, color, flags)
參數(shù):
- image: 原始圖像
- keypoints:關(guān)鍵點(diǎn)信息,將其繪制在圖像上
- outputimage:輸出圖片,可以是原始圖像
- color:顏色設(shè)置,通過修改(b,g,r)的值,更改畫筆的顏色,b=藍(lán)色,g=綠色,r=紅色。
- flags:繪圖功能的標(biāo)識(shí)設(shè)置
1、cv2.DRAW_MATCHES_FLAGS_DEFAULT:創(chuàng)建輸出圖像矩陣,使用現(xiàn)存的輸出圖像繪制匹配對和特征點(diǎn),對每一個(gè)關(guān)鍵點(diǎn)只繪制中間。
2、cv2.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG:不創(chuàng)建輸出圖像矩陣,而是在輸出圖像上繪制匹配對。
3、cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS:對每一個(gè)特征點(diǎn)繪制帶大小和方向的關(guān)鍵點(diǎn)圖形。
4、cv2.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS:單點(diǎn)的特征點(diǎn)不被繪制。
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角點(diǎn)檢測
# 2.1實(shí)例化ORB對象
orb = cv.ORB_create(nfeatures=1000)
# 2.2 檢測關(guān)鍵點(diǎn),并計(jì)算特征描述符
kp, des = orb.detectAndCompute(gray, None)
print(des.shape)
# 3.將關(guān)鍵點(diǎn)檢測在圖像上
img2 = cv.drawKeypoints(img, kp, None, flags=0) # 也可以添加 color 參數(shù)指定圖像顯示關(guān)鍵點(diǎ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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- OpenCV角點(diǎn)檢測的實(shí)現(xiàn)示例
- Python中OpenCV圖像特征和harris角點(diǎn)檢測
- OpenCV半小時(shí)掌握基本操作之角點(diǎn)檢測
- OpenCV特征提取與檢測之Shi-Tomasi角點(diǎn)檢測器
- OpenCV特征提取與檢測之Harris角點(diǎn)檢測
- Android基于OpenCV實(shí)現(xiàn)Harris角點(diǎn)檢測
- python opencv角點(diǎn)檢測連線功能的實(shí)現(xiàn)代碼
- OpenCV哈里斯(Harris)角點(diǎn)檢測的實(shí)現(xiàn)
- OpenCV實(shí)現(xiàn)圖像角點(diǎn)檢測
- opencv實(shí)現(xiàn)角點(diǎn)檢測
相關(guān)文章
django做form表單的數(shù)據(jù)驗(yàn)證過程詳解
這篇文章主要介紹了django做form表單的數(shù)據(jù)驗(yàn)證過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python采集某評論區(qū)內(nèi)容的實(shí)現(xiàn)示例
本文主要介紹了Python采集某評論區(qū)內(nèi)容的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
python生成并處理uuid的實(shí)現(xiàn)方式
這篇文章主要介紹了python生成并處理uuid的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python-re中search()函數(shù)的用法詳解(查找ip)
這篇文章主要介紹了Python-re中search()函數(shù)的用法-----查找ip,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
python 數(shù)字轉(zhuǎn)換為日期的三種實(shí)現(xiàn)方法
在Python中,我們經(jīng)常需要處理日期和時(shí)間,本文主要介紹了python 數(shù)字轉(zhuǎn)換為日期的三種實(shí)現(xiàn)方法,包含datetime模塊,strftime方法及pandas庫,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02

