網站首頁 編程語言 正文
copyTo()
函數原型
copyTo這個函數有兩種定義方式,分別是:
void copyTo( OutputArray m ) const; void copyTo( OutputArray m, InputArray mask ) const;
參數:
- 一個參數:
一張輸出圖像
- 兩個參數:
一張輸出圖像
和一個掩碼圖
簡單示例
例如:
image_in.copyTo(image_out);
就是把image_in
這張圖復制(copy to)到image_out
上。
又例如:
image_in.copyTo(image_out,mask);
則是不僅把image_in
這張圖復制(copy to)到image_out
上,且image_in
對應mask
中像素值為0的像素點都不會貼到image_out
上。
總結上述兩個函數用法的作用:
- 一個參數:表示將
image_in
矩陣復制到image_out
中。 - 兩個參數:表示得到一個附加掩膜
mask
的矩陣image_out
。
一個參數的很簡單就是復制圖像,上面讀mask用法探究不深,那么我們繼續來探究一下mask參數的用法
mask參數深入探究
例如下面用法代碼:
A.copyTo(B, mask)
mask
作為一個掩模板,如果在某個像素點(i, j)其值為1(只看第一通道,所以mask
單通道即可),則把A.at(i, j)
處的值直接賦給B.at(i, j)
,如果其值為0則B.at(i, j)
處保留其原始像素值。這樣能夠使得圖標邊緣的顏色和原圖保持一致。
例如下面具體用法
#include <iostream> #include <math.h> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <opencv2/highgui/highgui_c.h> using namespace cv; using namespace std; int main() { Mat srcImage = imread("./test1.jpg"); Mat dstImage = imread("./test.jpg"); if (!srcImage.data || !dstImage.data) { cout << "could not load image !"; return -1; } // namedWindow("圖1原始圖",); imshow("input_src1", srcImage); imshow("input_src2", dstImage); // 創建一個感興趣區域 Mat imageROI = srcImage(Rect(0, 0, dstImage.cols, dstImage.rows)); // 加載掩模板 Mat mask = imread("./test.jpg", 0); // 進行復制 dstImage.copyTo(imageROI, mask); // 顯示效果圖 imshow("out_put", srcImage); waitKey(0); return 0; }
運行效果圖:
原文鏈接:https://blog.csdn.net/weixin_45525272/article/details/122293098
相關推薦
- 2023-02-12 一文帶你了解Golang中reflect反射的常見錯誤_Golang
- 2022-05-08 Python?sns.distplot()方法的使用方法_python
- 2023-10-16 Nginx啟動,重啟以及基本命令
- 2022-07-22 HttpClient如何自定義重試方法
- 2022-02-12 安卓給文件賦777讀寫權限
- 2022-06-14 go語言中的udp協議及TCP通訊實現示例_Golang
- 2022-05-08 react實現簡單的拖拽功能_React
- 2022-07-09 Android實現app開機自啟動功能_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支