OpenCV旋轉估計(4)生成一個字符串表示的匹配圖函數 matchesGraphAsString()

  • 操作系統:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 編程語言:C++11

算法描述

matchesGraphAsString 函數是OpenCV庫中的一部分,位于 cv::detail 命名空間下。這個函數的主要作用是生成一個字符串表示的匹配圖(matches graph),其中包含了一系列圖像路徑和它們之間的匹配信息。這對于調試或者可視化圖像拼接過程中的匹配關系非常有用。

函數原型

String cv::detail::matchesGraphAsString 	
(std::vector< String > &  	paths,std::vector< MatchesInfo > &  	pairwise_matches,float  	conf_threshold 
) 	

參數

  • paths: 一個字符串向量,包含了參與匹配的所有圖像的路徑。
  • pairwise_matches: 包含了每對圖像之間匹配信息的向量。每個MatchesInfo結構體通常包含關鍵點匹配、匹配的質量等信息。
  • conf_threshold: 置信度閾值,用于過濾掉那些被認為不夠可靠的匹配。

返回值

返回一個字符串,表示圖像匹配圖。該字符串格式化為易于閱讀的形式,可以用來展示哪些圖像與哪些圖像相匹配及其置信度等信息。

代碼示例

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/stitching/detail/matchers.hpp>
#include <vector>using namespace cv;
using namespace cv::detail;int main()
{// 示例圖像路徑std::vector< String > paths = { "/media/dingxin/data/study/OpenCV/sources/images/stich1.png", "/media/dingxin/data/study/OpenCV/sources/images/stich2.png" };// 加載圖像std::vector< Mat > images;for ( const auto& path : paths ){Mat img = imread( path );if ( img.empty() ){std::cerr << "無法加載圖像: " << path << std::endl;return -1;}images.push_back( img );}// 初始化特征檢測器和描述符提取器Ptr< Feature2D > detector = ORB::create();std::vector< std::vector< KeyPoint > > keypoints( images.size() );std::vector< Mat > descriptors( images.size() );// 檢測關鍵點并計算描述符for ( size_t i = 0; i < images.size(); ++i ){detector->detectAndCompute( images[ i ], noArray(), keypoints[ i ], descriptors[ i ] );}// 匹配描述符std::vector< MatchesInfo > pairwise_matches;BFMatcher matcher( NORM_HAMMING );for ( size_t i = 0; i < images.size(); ++i ){for ( size_t j = i + 1; j < images.size(); ++j ){std::vector< DMatch > matches;matcher.match( descriptors[ i ], descriptors[ j ], matches );MatchesInfo mi;mi.src_img_idx = static_cast< int >( i );mi.dst_img_idx = static_cast< int >( j );mi.matches     = matches;// 假設這里我們簡單地設置了置信度為1.0f,實際應用中應根據實際情況設置mi.confidence = 1.0f;pairwise_matches.push_back( mi );}}// 設置置信度閾值float conf_threshold = 1.0f;try{// 調用matchesGraphAsString函數String matches_graph_string = matchesGraphAsString( paths, pairwise_matches, conf_threshold );std::cout << "Matches Graph:\n" << matches_graph_string << std::endl;}catch ( const std::exception& e ){std::cerr << "運行時錯誤: " << e.what() << std::endl;return -1;}return 0;
}

運行結果

Matches Graph:
graph matches_graph{
"stich1.png";
"stich2.png";
}

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

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

相關文章

Android 根據Url使用Retrofit框架進行文件下載

一、背景 根據后端返回的url下載地址,去執行文件下載&#xff0c;將文件保存到SD卡。這里使用Retrofit網絡框架。 二、代碼實現 2.1、定義一個DownloadFileService interface DownloadFileService {StreamingGETsuspend fun downloadFile(Url fileUrl: String):ResponseBody…

NVMe(Non-Volatile Memory Express)詳解

一、NVMe的定義與核心特性 NVMe&#xff08;非易失性內存主機控制器接口規范&#xff09;是一種 基于PCIe總線的高性能存儲協議&#xff0c;專為固態硬盤&#xff08;SSD&#xff09;設計&#xff0c;旨在替代傳統的AHCI協議&#xff08;如SATA&#xff09;。其核心特性包括&a…

機器學習——KNN超參數

sklearn.model_selection.GridSearchCV 是 scikit-learn 中用于超參數調優的核心工具&#xff0c;通過結合交叉驗證和網格搜索實現模型參數的自動化優化。以下是詳細介紹&#xff1a; 一、功能概述 GridSearchCV 在指定參數網格上窮舉所有可能的超參數組合&#xff0c;通過交叉…

穩定運行的以Oracle NoSQL數據庫為數據源和目標的ETL性能變差時提高性能方法和步驟

提高基于Oracle NoSQL數據庫的ETL&#xff08;提取、轉換、加載&#xff09;性能時&#xff0c;主要從多個角度進行優化。 提高基于Oracle NoSQL數據庫的ETL性能需要綜合考慮多個方面&#xff0c;關鍵是減少不必要的I/O操作、優化數據轉換和加載過程、合理配置Oracle NoSQL數據…

Compose 原理解析

Compose 的組件都是放在 setContent() 之后才能顯示的&#xff0c;那需要先看看這個函數的作用。 先看 ComponentActivity 的擴展函數 setContent()&#xff1a; /*** 將給定的可組合項合成到給定的 Activity 中。[content] 將成為給定 Activity 的根視圖。* 這大致相當于使用…

細說衛星導航:測距定位原理

測距定位原理 1. 偽距測量技術 核心原理&#xff1a;衛星發射信號&#xff0c;用戶接收并記錄傳播時間&#xff0c;乘以光速得到距離&#xff08;偽距&#xff09;。 技術細節&#xff1a; 信號傳播路徑分析 信號結構&#xff1a; 衛星信號包含三部分&#xff1a; 載波&…

19921 多重背包

19921 多重背包 ??難度&#xff1a;中等 &#x1f31f;考點&#xff1a;動態規劃、背包問題 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N …

js逆向之斷點調試

1.XHR/提取斷點用法 當刷新頁面時候&#xff0c;有大量請求&#xff0c;并且你無法定位參數信息的時候&#xff0c;或者參數被混淆無法搜到&#xff0c;可以用該方法&#xff0c;該方法是會捕獲所有請求連接&#xff0c;然后我們通過連接過濾出自己想要的請求&#xff0c;然后…

基于32單片機的無人機直流電機閉環調速系統設計

標題:基于32單片機的無人機直流電機閉環調速系統設計 內容:1.摘要 本文針對無人機直流電機調速需求&#xff0c;設計了基于32單片機的無人機直流電機閉環調速系統。背景在于無人機應用場景不斷拓展&#xff0c;對電機調速精度和穩定性要求日益提高。目的是開發一套高精度、響應…

如何用Deepseek制作流程圖?

使用Deepseek制作流程圖&#xff0c;本質上是讓AI根據你的需求&#xff0c;生成相關流程圖的代碼&#xff0c;然后在流程圖編輯器中渲染&#xff0c;類似于Python一樣&#xff0c;ChatGPT可以生成代碼&#xff0c;但仍需在IDE中執行。 你知道繪制流程圖最高效的工具是什么嗎&a…

嵌入式硬件工程師從小白到入門-原理圖(三)

原理圖繪制從小白到入門&#xff1a;知識點速通與注意事項 一、原理圖繪制基礎概念 什么是原理圖&#xff1f; 原理圖&#xff08;Schematic&#xff09;是電子電路的圖形化表示&#xff0c;展示元器件之間的電氣連接關系&#xff0c;是硬件設計的藍圖。 核心元素 元器件符號&…

WSL 環境橋接與雷達通信配置筆記

作者: DWDROME 維護時間: 2025-03-22 參考文章:Windows子系統&#xff08;WSL&#xff09;通過橋接網絡實現被外部局域網主機直接訪問 WSL 環境橋接與雷達通信配置筆記 環境說明 Windows 11 專業版&#xff08;啟用 Hyper-V&#xff09;WSL2 Ubuntu 20.04物理網線&#xff08…

ToDesk云電腦各類鼠標有什么區別?虛擬/3D/游戲鼠標等各有利

不知道各位在使用ToDesk云電腦的時候是否是有注意到&#xff0c;這其中的鼠標竟有多種名稱、多種模式可以選&#xff0c;比如鎖定鼠標、3D鼠標、游戲鼠標這幾項。 那么這些不同名稱的鼠標都代表什么意思吶&#xff0c;又應該怎么選擇、怎么用吶&#xff1f;本篇內容小編就為大…

DeepBI:重構流量邏輯,助力亞馬遜廣告實現高效流量增長

在日益激烈的跨境電商競爭環境中&#xff0c;廣告投放早已從“粗放撒網”走向“精細化運營”。尤其是在亞馬遜這樣一個成熟且競爭白熱化的平臺&#xff0c;如何在廣告預算有限的前提下實現高效曝光、精準觸達、穩定轉化&#xff0c;成為眾多賣家和運營團隊面臨的核心挑戰。 De…

java項目之基于ssm的畢業論文管理系統(源碼+文檔)

項目簡介 畢業論文管理系統實現了以下功能&#xff1a; 本畢業論文管理系統主要實現的功能模塊包括學生模塊、導師模塊和管理員模塊三大部分&#xff0c;具體功能分析如下&#xff1a; &#xff08;1&#xff09;導師功能模塊&#xff1a;導師注冊登錄后主要功能模塊包括個人…

【自學筆記】Linux基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Linux 基礎知識點總覽目錄Linux 簡介文件和目錄結構常用命令文件操作目錄操作權限管理文本處理 Shell 腳本基礎進程管理用戶和組管理網絡配置 總結 Linux 基礎知識點…

【PCB工藝】晶體管的發展歷史

晶體管被認為是20世紀最偉大的發明之一&#xff0c;因為沒有晶體管就不會有現代電腦、手機或平板??&#xff0c;你也無法閱讀到這里的內容&#xff0c;因為不存在網絡。 ——本文純粹出于對過往奮斗在這個領域中科學家的緬懷。科學家有太多寶貴的思想和經驗值得我們認真總結和…

第23章:Kubernetes網絡模型深度剖析

第23章:Kubernetes網絡模型深度剖析 作者:DogDog_Shuai 閱讀時間:約25分鐘 難度:高級 目錄 1. 引言2. Kubernetes網絡模型基礎3. 四種網絡通信模式4. CNI架構深度解析5. 網絡實現原理

HTML應用指南:利用GET請求獲取貓眼電影日票房信息——以哪吒2為例

2025年春節檔期&#xff0c;國產動畫電影《哪吒之魔童鬧海》&#xff08;以下簡稱《哪吒2》&#xff09;以顛覆性的敘事風格與工業化制作水準震撼登場&#xff0c;不僅刷新了中國動畫電影的票房紀錄&#xff0c;更成為全球影史現象級作品。影片憑借春節檔期的爆發式開局、持續5…

Model Context Protocol:下一代AI系統集成范式革命

在2023年全球AI工程化報告中,開發者面臨的核心痛點排名前三的分別是:模型與業務系統集成復雜度(58%)、上下文管理碎片化(42%)、工具調用標準化缺失(37%)。傳統API集成模式在對接大語言模型時暴露明顯短板:RESTful接口無法承載動態上下文,GraphQL缺乏工具編排能力,gR…