OpenCV圖像拼接(6)根據權重圖對源圖像進行歸一化處理函數normalizeUsingWeightMap()

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

算法描述

cv::detail::normalizeUsingWeightMap 是 OpenCV 中用于圖像拼接細節處理的一個函數。它根據權重圖對源圖像進行歸一化處理,通常用于圖像拼接或融合過程中,以確保不同圖像之間的平滑過渡。

原型

void cv::detail::normalizeUsingWeightMap 	
(InputArray  	weight,InputOutputArray  	src 
)

參數

  • InputArray weight
    類型: 輸入數組(通常是 Mat 類型)
    描述: 權重圖,它定義了源圖像中每個像素的重要性或貢獻度。權重圖通常是一個單通道浮點類型的圖像 (CV_32FC1),其尺寸與 src 相同。在這個圖像中,較高的值表示對應的像素在最終合成圖像中有更高的重要性或優先級。權重圖可以通過多種方式生成,例如使用 cv::detail::createWeightMap 函數。

  • InputOutputArray src
    類型: 輸入輸出數組(通常是 Mat 類型)
    描述: 需要根據權重圖進行歸一化處理的源圖像。在調用此函數之前,src 應該具有特定的數據類型,即三通道16位短整型 (CV_16SC3),如錯誤信息所指出。這個圖像將根據提供的權重圖進行調整,以實現不同圖像間的平滑過渡。處理后的圖像會直接修改原 src 圖像數據。

代碼示例

#include <opencv2/opencv.hpp>
#include <opencv2/stitching/detail/blenders.hpp>  // 包含正確的頭文件using namespace cv;
using namespace cv::detail;int main()
{// 加載或創建你的源圖像 src 和權重圖 weightMat src = imread( "/media/dingxin/data/study/OpenCV/sources/images/stich1.png", IMREAD_COLOR );  // 使用適當標志加載圖片if ( src.empty() ){std::cerr << "無法加載圖像,請檢查路徑!\n";return -1;}// 將 src 轉換為 CV_16SC3 類型src.convertTo( src, CV_16SC3 );// 創建一個與 src 同尺寸的單通道浮點型Mat對象作為權重圖Mat weight = Mat( src.size(), CV_32FC1 );// 初始化 weight 的具體數值應基于實際應用情況來填充// 這里為了示例,簡單地將其中心區域設置為1,其他地方為0circle( weight, Point( src.cols / 2, src.rows / 2 ), min( src.cols, src.rows ) / 4, Scalar( 1 ), -1 );try{// 對源圖像根據權重圖進行歸一化normalizeUsingWeightMap( weight, src );}catch ( const cv::Exception& ex ){std::cerr << "OpenCV Exception: " << ex.what() << std::endl;return -1;}// 顯示結果convertScaleAbs( src, src );  // 將處理后的圖像轉換回可顯示的格式imshow( "Normalized Image", src );waitKey( 0 );  // 等待按鍵以關閉窗口return 0;
}

運行結果

在這里插入圖片描述

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

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

相關文章

23種設計模式-外觀(Facade)設計模式

外觀設計模式 &#x1f6a9;什么是外觀設計模式&#xff1f;&#x1f6a9;外觀設計模式的特點&#x1f6a9;外觀設計模式的結構&#x1f6a9;外觀設計模式的優缺點&#x1f6a9;外觀設計模式的Java實現&#x1f6a9;代碼總結&#x1f6a9;總結 &#x1f6a9;什么是外觀設計模式…

capl語言基礎語法(二)

1.strncpy&#xff1a;將字符串復制到另一個字符串中。 輸入&#xff1a; dest 是目標字符串。 src 是源字符串。 n 是要復制的最大字符數。 語法&#xff1a; char *strncpy(char *dest, const char *src, size_t n); 例子&#xff1a; strncpy(gStringRep,"",…

QLoRA和LoRA 微調

QLoRA 其實是一種結合了量化和 LoRA 微調技術的統一方法&#xff0c;而不是同時使用兩種不同的微調方式。換句話說&#xff0c;QLoRA 的意思就是&#xff1a;先把大模型的主權重用低精度&#xff08;例如 4-bit&#xff09;量化&#xff0c;從而大幅減少存儲需求&#xff1b;然…

Qt Concurrent 并發 Map 和 Map-Reduce

并發 Map 和 Map-Reduce QtConcurrent::map()會對容器中的每個項目應用一個函數&#xff0c;對項目進行就地修改。QtConcurrent::mapped() 類似于 map()&#xff0c;但它返回的是一個包含修改內容的新容器。QtConcurrent::mappedReduced() 類似于 mapped()&#xff0c;只不過修…

RT-Thread-線程管理

一、線程管理 RT_Thread線程管理主要是實現線程管理和調度&#xff0c;線程分為用戶線程和系統線程。RT_Thread的線程調度器是搶占式的&#xff0c;尋找就緒狀態最高優先級線程。 線程管理的API函數 創建線程函數 rt_thread_t rt_thread_create( const char *name, //線程名稱 …

【CC2530 教程 十二】CC2530 Z-Stack 硬件抽象層

目錄 一、硬件抽象層簡介&#xff1a; &#xff08;1&#xff09;HAL 硬件抽象層是什么&#xff1f; &#xff08;2&#xff09;通俗易懂的解釋&#xff1a; &#xff08;3&#xff09;具體例子&#xff1a; 二、硬件抽象層HAL&#xff1a; &#xff08;1&#xff09;HAL…

Linux如何判斷磁盤是否已分區?

在 Linux 系統中&#xff0c;判斷磁盤是否已分區可通過以下方法實現&#xff1a; 方法 1&#xff1a;使用 fdisk -l 命令 此命令會列出所有磁盤及其分區的詳細信息&#xff1a; sudo fdisk -l輸出解讀&#xff1a; 若磁盤&#xff08;如 /dev/sdb&#xff09;下有類似 /dev/…

《熔化焊接與熱切割作業》考試注意事項

考試前的準備 攜帶必要的證件和材料&#xff1a;考生需攜帶身份證、準考證等有效證件&#xff0c;以及考試所需的焊接工具、材料等。確保證件齊全&#xff0c;避免因證件問題影響考試。 提前檢查焊接設備和工具&#xff1a;在考試前&#xff0c;考生應仔細檢查焊接設備和工具是…

Matlab Hessian矩陣計算(LoG算子)

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 圖像的Hessian矩陣用于描述圖像灰度值的二階導數,可以用來分析圖像的局部曲率和變化。例如,在圖像邊緣檢測、特征點檢測等任務中,Hessian矩陣能幫助我們識別圖像的結構。 Hessian矩陣定義 對于二維圖像,Hessian…

selenium之處理彈框(alert、confirm、prompt)

彈框 WebDriver提供了一個API, 用于處理JavaScript提供的三種類型的原生彈窗消息. 這些彈窗由瀏覽器提供限定的樣式.&#xff1b;分別為以下三種 alerts警告框confirm確認框prompt提示框 話不多說&#xff0c;開始實踐下就知道怎么一回事了 alerts 警告框&#xff0c;顯示…

Visual Studio 2019 Qt QML 項目環境搭建常見問題處理方法

在 Visual Studio 2019 運行 Qt/QML 項目比直接使用QtCreator環境麻煩&#xff0c;主要是有qmake 的一些配置項不能在 Visual Studio中設置。下面整理一些常見問題的處理方法&#xff0c;供參考&#xff1a; 搭建VS Qt 環境&#xff0c;在Visual Studios 2019下面安裝 Qt Vis…

【Linux】POSIX信號量與基于環形隊列的生產消費者模型

目錄 一、POSIX信號量&#xff1a; 接口&#xff1a; 二、基于環形隊列的生產消費者模型 環形隊列&#xff1a; 單生產單消費實現代碼&#xff1a; RingQueue.hpp&#xff1a; main.cc&#xff1a; 多生產多消費實現代碼&#xff1a; RingQueue.hpp&#xff1a; main.…

RAG優化:python從零實現GraphRag 一場文檔與知識的“戀愛”之旅

嘿,親愛的算法工程師們,準備好迎接一場文檔與知識的“戀愛”之旅了嗎?今天我們要介紹的 Graph RAG,就像是一位“紅娘”,幫助文檔和知識在圖的世界里找到彼此,擦出智慧的火花! 文章目錄 為什么需要 Graph RAG?Graph RAG 的“戀愛秘籍”準備好了嗎?讓我們開始吧!環境設…

深入 SVG:矢量圖形、濾鏡與動態交互開發指南

1.SVG 詳細介紹 SVG&#xff08;Scalable Vector Graphics&#xff09; 是一種基于 XML 的矢量圖形格式&#xff0c;用于描述二維圖形。 1. 命名空間 (Namespace) ★ 了解 命名空間 URI&#xff1a;http://www.w3.org/2000/svg 用途&#xff1a;在 XML 或 XHTML 中區分不同標…

HTTPS 加密過程詳解

HTTPS 的核心組成是 HTTP 協議與 SSL/TLS 加密層的結合&#xff0c;通過加密傳輸、身份驗證和完整性校驗機制&#xff0c;確保數據安全。其加密過程通過以下方式保障數據的機密性、完整性和身份驗證&#xff1a; 一、HTTPS 的核心組成 1. HTTP 協議 作為基礎通信協議&#xf…

嵌入式硬件工程師從小白到入門-速通版(一)

嵌入式硬件工程師從小白到入門&#xff1a;知識點速通與實戰指南 一、基礎硬件知識體系 電子電路基礎 基本概念&#xff1a;電流、電壓、電阻、電容、電感等&#xff1b;電路分析&#xff1a;歐姆定律、基爾霍夫定律、戴維南定理&#xff1b;元器件特性&#xff1a;二極管、三極…

SpringBoot通過Map實現天然的策略模式

&#x1f60a; 作者&#xff1a; 一恍過去 &#x1f496; 主頁&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社區&#xff1a; Java技術棧交流 &#x1f389; 主題&#xff1a; SpringBoot通過Map實現天然的策略模式 ?? 創作時間&#xff1a; 202…

WordPress WooCommerce 本地文件包含漏洞(CVE-2025-1661)

免責聲明 僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 一:產品介紹 HUSKY – WooCommer…

matlab近似計算聯合密度分布

在 Matlab 中&#xff0c;當A和B是兩個序列數據時&#xff0c;可以通過以下步驟來近似求出A大于B的概率分布&#xff1a;數據準備&#xff1a;確保序列A和B具有相同的長度。如果長度不同&#xff0c;需要進行相應的處理&#xff08;例如截取或插值&#xff09;。計算A大于B的邏…

可視化動態表單動態表單界的天花板--Formily(阿里開源)

文章目錄 1、Formily表單介紹2、安裝依賴2.1、安裝內核庫2.2、 安裝 UI 橋接庫2.3、Formily 支持多種 UI 組件生態&#xff1a; 3、表單設計器3.1、核心理念3.2、安裝3.3、示例源碼 4、場景案例-登錄注冊4.1、Markup Schema 案例4.2、JSON Schema 案例4.3、純 JSX 案例 1、Form…