opencv-ORB檢測

ORB(Oriented FAST and Rotated BRIEF)是一種圖像特征檢測和描述算法,結合了 FAST 關鍵點檢測器和 BRIEF 描述子的優點。ORB 算法具有良好的性能,特別適用于實時應用,如目標追蹤、相機定位等。

以下是 ORB 算法的一般步驟:

  1. FAST 關鍵點檢測器: 使用 FAST(Features from Accelerated Segment Test)算法檢測圖像中的關鍵點。FAST 是一種高效的角點檢測算法。

  2. Harris 角點響應計算: 對 FAST 檢測到的關鍵點使用 Harris 角點響應進行篩選。

  3. 非極大值抑制: 在圖像中選擇具有最大角點響應的關鍵點。

  4. Oriented BRIEF 描述子計算: 在關鍵點周圍計算描述子,為了提高描述子的魯棒性,引入方向信息。

  5. 描述子匹配: 使用描述子進行關鍵點匹配。
    cv2.ORB_create 是 OpenCV 中用于創建 ORB(Oriented FAST and Rotated BRIEF)檢測器和描述器的函數。ORB 是一種用于圖像特征檢測和描述的算法,結合了 FAST 關鍵點檢測器和 BRIEF 描述子的優點。

基本的使用方式如下:

orb = cv2.ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]])

其中方括號表示可選參數,具體的參數說明如下:

  • nfeatures: 保留的關鍵點數量,默認為 500。
  • scaleFactor: 圖像金字塔的縮放因子,默認為 1.2。
  • nlevels: 圖像金字塔的層數,默認為 8。
  • edgeThreshold: 邊緣閾值,用于過濾不穩定的邊緣關鍵點,默認為 31。
  • firstLevel: 圖像金字塔的第一層索引,默認為 0。
  • WTA_K: 用于計算描述子的像素點的數量,可以是 2、3或 4,默認為 2。
  • scoreType: 評分類型,可以是 cv2.ORB_HARRIS_SCOREcv2.ORB_FAST_SCORE,默認為 cv2.ORB_HARRIS_SCORE
  • patchSize: BRIEF 描述子的窗口大小,默認為 31。
  • fastThreshold: FAST 關鍵點檢測的閾值,默認為 20。

在 OpenCV 中,可以使用 cv2.ORB_create 函數創建 ORB 檢測器和描述器。以下是一個簡單的示例:

import cv2
import numpy as np
import matplotlib.pyplot as plt# 讀取圖像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg", cv2.IMREAD_GRAYSCALE)
# 創建 ORB 檢測器和描述器
orb = cv2.ORB_create()
# 檢測關鍵點并計算描述子
keypoints, descriptors = orb.detectAndCompute(img, None)
# 在圖像上繪制關鍵點
img_with_keypoints = cv2.drawKeypoints(img, keypoints, None, color=(0, 255, 0), flags=0)# 顯示原圖和帶有關鍵點的圖像
plt.figure(figsize=(10, 5))plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Original Image'), plt.axis('off')plt.subplot(122), plt.imshow(cv2.cvtColor(img_with_keypoints, cv2.COLOR_BGR2RGB))
plt.title('Image with ORB Keypoints'), plt.axis('off')plt.show()

在這里插入圖片描述

在這個示例中,我們使用了 cv2.ORB_create 創建了一個 ORB 檢測器和描述器,然后使用 detectAndCompute 方法在圖像中檢測關鍵點并計算描述子。最后,通過 drawKeypoints 方法在圖像上繪制關鍵點,并使用 Matplotlib 顯示原圖和帶有關鍵點的圖像。

ORB 算法的優點之一是其計算速度較快,適用于實時應用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166601.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166601.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166601.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MCU常用文件格式

1. asm文件 asm是匯編語言源程序的擴展名,.asm文件是以asm作為擴展名的文件,是匯編語言的源程序文件。匯編語言(Assembly Language)是面向機器的程序設計語言,是利用計算機所有硬件特性并能直接控制硬件的語言。在匯編語言中,用助…

【廣州華銳互動】利用VR體驗環保低碳生活能帶來哪些教育意義?

隨著科技的不斷發展,虛擬現實(VR)技術已經逐漸走進了我們的生活。從游戲娛樂到教育培訓,VR技術的應用范圍越來越廣泛。而在這個追求綠色、環保的時代,VR技術也為我們帶來了一種全新的環保低碳生活方式。讓我們一起走進…

nginx配置相關應用服務

1、無ssl證書的conf文件 server {listen 80;server_name test.domain.com;root html;index index.html index.htm;location / {proxy_http_version 1.1;proxy_set_header Connection "";proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_…

Java String.contains()方法

描述: java.lang.String.contains()方法返回true,當且僅當此字符串包含指定的char值序列。 聲明: 以下是聲明java.lang.String.contains()方法 public boolean contains(CharSequence s) 返回值: 如果此字符串包含&#xff…

2022年MathorCup高校數學建模挑戰賽—大數據競賽A題58到家家政服務訂單分配問題求解全過程文檔及程序

2022年MathorCup高校數學建模挑戰賽—大數據競賽 A題 58到家家政服務訂單分配問題 原題再現: “58 到家”是“58 同城”旗下高品質、高效率的上門家政服務平臺,平臺向用戶提供家政保潔、保姆、月嫂、搬家、維修等眾多生活領域的服務。在家政保潔場景中…

欲更新瀏覽器的Mac用戶請注意,AMOS又出一招新“騙術”

近日,Malwarebytes發現有一種專門針對Mac操作系統(OS)的數據竊取程序正通過偽造的網頁瀏覽器更新程序進行分發。Malwarebytes稱這與其通常的技術、戰術和程序大不相同,該惡意軟件可以模仿 Safari 和谷歌 Chrome 瀏覽器。 網絡安全…

【C++心愿便利店】No.13---C++之探索vector底層原理

文章目錄 前言一、STL簡介1.1 什么是STL1.2 STL的六大組件 二、vector的介紹及使用2.1 vector的介紹2.2 vector的使用2.2.1 vector的定義2.2.2 vector iterator 的使用2.2.3 vector 空間增長問題2.2.4 vector 增刪查改 三、vector模擬實現3.1 成員變量3.2 成員函數3.2.1 構造函…

2、分布式鎖實現原理與最佳實踐(二)

常見分布式鎖的原理 4.1 Redisson Redis 2.6之后才可以執行lua腳本,比起管道而言,這是原子性的,模擬一個商品減庫存的原子操作: //lua腳本命令執行方式:redis-cli --eval /tmp/test.lua , 10 jedis.set("produ…

python opencv 放射變換和圖像縮放-實現圖像平移旋轉縮放

python opencv 放射變換和圖像縮放-實現圖像平移旋轉縮放 我們實現這次實驗主要用到cv2.resize和cv2.warpAffine cv2.warpAffine主要是傳入一個圖像矩陣,一個M矩陣,輸出一個dst結果矩陣,計算公式如下: cv2.resize則主要使用fx&…

精益生產中的周轉箱優勢:提升效率與質量的得力利器

在當今競爭激烈的制造業中,企業追求高效生產和卓越質量是至關重要的。精益生產理念提供了一套有效的工具和方法,其中周轉箱作為一個關鍵的組成部分,在優化生產流程、提高效率和質量方面發揮著重要作用。下面談談精益生產中的周轉箱優勢&#…

C++:內存管理

內存分布: 首先我們需要了解的是C/C中內存區域的劃分: 1. 棧又叫堆棧--非靜態局部變量/函數參數/返回值等等,棧是向下增長的:先調用的地址比后調用的地址大。 2. 內存映射段是高效的I/O映射方式,用于裝載一個共享的動…

百度文心一言(千帆大模型)聊天API使用指導

開篇不得不吐槽下百度,百度智能云平臺首頁跳轉千帆大模型平臺的按鈕太多了,不同按鈕跳轉不同的子頁面,不熟悉的,能把人找懵。入口太多,就導致用戶不知道從何開始。本文就從一個前端開發人員的角度,教大家快…

【深度學習】基于深度學習的超分辨率圖像技術一覽

超分辨率(Super-Resolution)即通過硬件或軟件的方法提高原有圖像的分辨率,圖像超分辨率是計算機視覺和圖像處理領域一個非常重要的研究問題,在醫療圖像分析、生物特征識別、視頻監控與安全等實際場景中有著廣泛的應用。 SR取得了顯著進步。一般可以將現有…

為什么,word文件在只讀模式下,仍然能編輯?

Word文檔設置了只讀模式,是可以編輯的,但是當我們進行保存的時候就會發現,word提示需要重命名并選擇新路徑才能夠保存。 這種操作,即使可以編輯文字,但是原文件是不會受到影響的,編輯之后的word文件會保存到…

torch常用和預期輸入輸出

import torch import torch.nn as nn import torch.nn.functional as F nn中定義的是類,functional里面定義的是函數操作。 輸出shape的計算公式: o u t _ s h a p e r o u n d _ m o d e ( i n _ s h a p e 2 ? p a d d i n g ? k e r n e l _ s…

20231124給RK3399的挖掘機開發板在Andorid10下加鼠標右鍵返回

20231124給RK3399的挖掘機開發板在Andorid10下加鼠標右鍵返回 2023/11/24 12:19 百度:RK3399 Android10 右鍵返回 https://blog.csdn.net/danhu/article/details/122467256 android9/android10 鼠標右鍵返回(已驗證) danhu 于 2022-01-13 09:46:42 發布 android10 …

Echarts 大屏注冊自定義地圖解析文件流報錯問題解決

效果圖: 1、首先通過后臺接口獲取到SVG圖片的文件流,postman能夠正確解析出文件流,前端調用api時需要設置返回的響應格式為image/svg+xml格式,否則解析失敗 拿到文件流后是這樣的 <?xml version="1.0" encoding="utf-8"?> <!-- Generator: …

【深度學習】P1 深度學習基礎框架 - 張量 Tensor

深度學習基礎框架 張量 Tensor 張量數據操作導入創建張量獲取張量信息改變張量張量運算 張量與內存 張量 Pytorch 是一個深度學習框架&#xff0c;用于開發和訓練神經網絡模型。 而其核心數據結構&#xff0c;則是張量 Tensor&#xff0c;類似于 Numpy 數組&#xff0c;但是可…

AI制作的《大多數普通女孩的一生》——公開教程和工作流

內容來源&#xff1a;JiamigouCn ?這周由AI制作的《大多數普通女孩的一生》&#xff0c;在抖音爆火&#xff0c;獲得新華網轉發。到目前為止&#xff0c;全網還沒有公開教程和工作流&#xff0c;需要花費800-2000購買。 本著AI社區共享原則&#xff0c;我委托公眾號“楚思智能…

小學生古詩文大會復賽在線模擬新增刷題版和闖關版,幫助孩子沖刺

小學生古詩文大會明天就要開始了&#xff0c;剛剛古詩文大會主辦方也正式發布了通知&#xff0c;總體安排、操作指引和我之前發布的一樣&#xff1a;2023年11月25日小學生古詩文大會復選&#xff08;復賽&#xff09;答題操作手冊 為了幫助參加復選&#xff08;復賽&#xff09…