3.RV1126-OPENCV 圖像疊加

一.功能介紹

? ? ? ? 圖像疊加:就是在一張圖片上放上自己想要的圖片,如LOGO,時間等。有點像之前提到的OSD原理一樣。例如:下圖一張圖片,在左上角增加其他圖片。

?二.OPENCV中圖像疊加常用的API

1.?copyTo方法進行圖像疊加

  • 原理:在圖片1中選取一個 Rect 的興趣區域(也就是自己想要放哪,放多大),然后把圖2放在興趣區域,最后輸出圖片1。注意:這個興趣區域要和圖2一樣大小。例如:圖1為原圖,圖2為杰倫。

  • ?API: void copyTo( OutputArray m ) const
  • ?代碼實現:
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>using namespace cv;
using namespace std;int main()
{//讀取圖像Mat src_pic = imread("frame1.jpg"); //src_pic是原圖像數據Mat logo_pic = imread("mat_demo.jpg");//logo_pic是LOGO圖像的數據//創建興趣區域Mat logo_pic_roi = src_pic(Rect(0,0,logo_pic.cols, logo_pic.rows)); //在src_pic上創建一個矩形區域,大小與logo_pic相同//將logo_pic復制到logo_pic_roi中logo_pic.copyTo(logo_pic_roi);//顯示圖像imwrite("result.jpg", src_pic);return 0;
}

2.?addWeighted方法對圖像數據進行圖像疊加

  • 原理:和copyTo一樣,只不過多了一個加權操作(加權:1 = 圖片1的權重+圖片2的權重,誰的權重高,誰更清楚,更清晰),然后輸出新圖片。
  • API:? addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, intdtype = -1);

第一個參數:src1,第一個輸入的圖像
第二個參數:alpha,第一個輸入圖像的權重值,是一個雙精度浮點數
第三個參數:src2,第二個輸入圖像
第四個參數:beta,第二個輸入圖像的權重,是一個雙精度浮點數
第五個參數:gamma 加權和的可選標量,通常是一個雙精度浮點數,默認為 0
第六個參數:dst 輸出圖像,這里是存儲加權圖像的結果
第七個參數:輸出圖像的類型,默認是-1,表示的是輸入圖像和輸出圖像類型一致

上圖是src1權重為0.8,下圖是src1權重為0.3效果:

  • addWeighted的兩種情況:1.兩張圖片大小不一樣:就是先在圖片1上面創建感興趣區域,然后融合感興趣區域和圖片2,最后輸出圖片1;2.兩張圖片一樣大:直接融合兩張圖片,然后生成新圖片。
  • 代碼實現:?
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, char * argv[])
{Mat src1 = imread(argv[1]);  //src1原圖像的數據Mat src2 = imread(argv[2]); //src2是LOGO圖像的數據//判斷src1大小和src2大小是否相同,若不同則和copyTo函數一樣操作if(src1.size != src2.size){//在src1中創建一個矩形區域(興趣區域)和src2大小相同的圖像Mat image_roi = src1(Rect(0, 0, src2.cols, src2.rows));//設置權重double alpha = 0.8;double beta = 1 - alpha;int gamma = 0;//將src2和src1的矩形區域(興趣區域)進行融合,并將結果存入image_roi中addWeighted(image_roi, alpha, src2, beta, gamma, image_roi);imwrite("addweighted3.jpg", src1);}else{//src1和src2大小相同,直接進行加權操作double alpha = 0.3;double beta = 1 - alpha;int gamma = 0;Mat dst;addWeighted(src1, alpha, src2, beta, gamma,dst);imwrite("addweighted2.jpg", dst);}return 0;
}

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

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

相關文章

MySQL垂直分庫(基于MyCat)

參考資料&#xff1a; 參考視頻 參考博客 Mycat基本部署 視頻參考資料&#xff1a;鏈接: https://pan.baidu.com/s/1xT_WokN_xlRv0h06b6F3yg 提取碼: aag3 概要&#xff1a; 本文的垂直分庫&#xff0c;全部是基于前文部署的基本架構進行的 垂直分庫&#xff1a; 垂直分庫…

Spitfire:Codigger 生態中的高性能、安全、分布式瀏覽器

Spitfire 是 Codigger 生態系統中的一款現代化瀏覽器&#xff0c;專為追求高效、隱私和分布式技術的用戶設計。它結合了 Codigger 的分布式架構優勢&#xff0c;在速度、安全性和開發者支持方面提供了獨特的解決方案&#xff0c;同時確保用戶對數據的完全控制。 1. 高性能瀏覽…

1-【源碼剖析】kafka核心概念

從今天開始開始在csdn上記錄學習的筆記&#xff0c;主要包括以下幾個方面&#xff1a; kafkaflinkdoris 本系列筆記主要記錄Kafka學習相關的內容。在進行kafka源碼學習之前&#xff0c;先介紹一下Kafka的核心概念。 消息 消息是kafka中最基本的數據單元&#xff0c;由key和…

互聯網大廠Java求職面試:云原生架構下的微服務網關與可觀測性設計

互聯網大廠Java求職面試&#xff1a;云原生架構下的微服務網關與可觀測性設計 鄭薪苦懷著忐忑的心情走進了會議室&#xff0c;對面坐著的是某大廠的技術總監張總&#xff0c;一位在云原生領域有著深厚積累的專家。 第一輪面試&#xff1a;微服務網關的設計挑戰 張總&#xf…

【HarmonyOS 5】針對 Harmony-Cordova 性能優化,涵蓋原生插件開發、線程管理和資源加載等關鍵場景

1. ?原生圖片處理插件&#xff08;Java&#xff09; package com.example.plugin; import ohos.media.image.ImageSource; import ohos.media.image.PixelMap; import ohos.app.Context; public class ImageProcessor { private final Context context; public ImagePro…

Java-IO流之緩沖流詳解

Java-IO流之緩沖流詳解 一、緩沖流概述1.1 什么是緩沖流1.2 緩沖流的工作原理1.3 緩沖流的優勢 二、字節緩沖流詳解2.1 BufferedInputStream2.1.1 構造函數2.1.2 核心方法2.1.3 使用示例 2.2 BufferedOutputStream2.2.1 構造函數2.2.2 核心方法2.2.3 使用示例 三、字符緩沖流詳…

健康檢查:在 .NET 微服務模板中優雅配置 Health Checks

&#x1f680; 健康檢查&#xff1a;在 .NET 微服務模板中優雅配置 Health Checks &#x1f4da; 目錄 &#x1f680; 健康檢查&#xff1a;在 .NET 微服務模板中優雅配置 Health Checks一、背景與意義 &#x1f50d;二、核心配置 &#x1f527;2.1 引入必要的 NuGet 依賴 &…

關于akka官方quickstart示例程序(scala)的記錄

參考資料 https://doc.akka.io/libraries/akka-core/current/typed/actors.html#first-example 關于scala語法的注意事項 extends App是個語法糖&#xff0c;等同于直接在伴生對象中編寫main 方法對象是通過apply方法創建的&#xff0c;也可以通過對象的名稱單獨創建&#x…

基于vue3-elemenyui的頁面加載及新建瀏覽頁案例

1.參考鏈接&#xff1a; 基于創建vue3鏈接&#xff1a;Vue3前端項目創建_vscode創建vue3項目-CSDN博客 基于創建elementui鏈接&#xff1a;Vue3引入ElementPlus_vue引入element-plus-CSDN博客 2.案例內容 該案例實現了基本的app.vue的路由跳轉、新建瀏覽頁參數傳入以及瀏覽…

板凳-------Mysql cookbook學習 (十)

5.6 改變字符串的字符集或字符排序 mysql> set s1 my string; Query OK, 0 rows affected (0.01 sec)mysql> set s2 convert(s1 using utf8); Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> select charset(s1), charset(s2); -------------------------…

使用nginx配置反向代理,負載均衡

首先啥叫反向代理 咋配置呢&#xff0c;那當然是在nginx目錄下改conf文件了 具體咋改呢&#xff0c;那就新增一個新的server配置&#xff0c;然后在location里新增你想代理的服務器 實際上負載均衡也就是根據反向代理的思路來的&#xff0c;如下所示 配置的話實際上也與上…

嵌入式開發之STM32學習筆記day20

STM32F103C8T6 PWR電源控制 1 PWR簡介 PWR&#xff08;Power Control&#xff09;電源控制單元是STM32微控制器中一個重要的組成部分&#xff0c;它負責管理系統的電源管理功能&#xff0c;以優化功耗并提高效率。PWR負責管理STM32內部的電源供電部分&#xff0c;可以實現可編…

Spring AI(10)——STUDIO傳輸的MCP服務端

Spring AI MCP&#xff08;模型上下文協議&#xff09;服務器Starters提供了在 Spring Boot 應用程序中設置 MCP 服務器的自動配置。它支持將 MCP 服務器功能與 Spring Boot 的自動配置系統無縫集成。 本文主要演示支持STDIO傳輸的MCP服務器 僅支持STDIO傳輸的MCP服務器 導入j…

Java八股文——集合「Set篇」

Set集合有什么特點&#xff1f;如何實現key無重復的&#xff1f; 面試官您好&#xff0c;Set 集合是 Java 集合框架中的一個重要接口&#xff0c;它繼承自 Collection 接口&#xff0c;其最顯著的特點和設計目標就是存儲一組不重復的元素。 一、Set集合的主要特點&#xff1a…

「數據分析 - NumPy 函數與方法全集」【數據分析全棧攻略:爬蟲+處理+可視化+報告】

- 第 104 篇 - Date: 2025 - 06 - 05 Author: 鄭龍浩/仟墨 NumPy 函數與方法全集 文章目錄 NumPy 函數與方法全集1. 數組創建與初始化基礎創建序列生成特殊數組 2. 數組操作形狀操作合并與分割 3. 數學運算基礎運算統計運算 4. 隨機數生成基礎隨機分布函數 5. 文件IO文件讀寫 …

報表/報告組件(二)-實例與實現解釋

上篇《報表/報告組件(一)-指標/屬性組件設計》介紹了組件核心指標/屬性設計&#xff0c;本文以實例介紹各個特性的實現和效果&#xff0c;實例是多個報告融合&#xff0c;顯示所有的特性。 設計 指標/屬性組件是報告/報表關鍵部分&#xff0c;上篇已介紹過&#xff0c;本節回顧…

Flutter嵌入式開發實戰 ——從樹莓派到智能家居控制面板,打造工業級交互終端

一、為何選擇Flutter開發嵌入式設備&#xff1f; 1. 跨平臺能力降維打擊 特性傳統方案Flutter方案開發效率需分別開發Android/Linux一套代碼多端部署內存占用200MB (QtWeb引擎)<80MB (Release模式)熱重載支持不支持支持 2. 工業級硬件支持實測 樹莓派4B&#xff1a;1080…

[藍橋杯]機器人塔

題目描述 X 星球的機器人表演拉拉隊有兩種服裝&#xff0c;A 和 B。 他們這次表演的是搭機器人塔。 類似&#xff1a; A B B A B A A A B B B B B A B A B A B B A 隊內的組塔規則是&#xff1a; A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。 你的…

語雀文檔保存失敗URI malformed

原因 原因未知&#xff0c;我用deekseek將回答的答案復制到語雀文檔時出現了這個異常&#xff0c;在知識庫里面一直保存失敗 語雀文檔保存失敗URI malformed 解決方案 使用小記&#xff0c;將里面的內容轉移到小記里&#xff0c;將小記移到知識庫中即可

小明的Java面試奇遇之互聯網保險系統架構與性能優化

一、文章標題 小明的Java面試奇遇之互聯網保險系統架構與性能優化&#x1f680; 二、文章標簽 Java,Spring Boot,MyBatis,Redis,Kafka,JVM,多線程,互聯網保險,系統架構,性能優化 三、文章概述 本文模擬了程序員小明在應聘互聯網保險系統開發崗位時&#xff0c;參與的一場深…