IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 4_OpenCV矩阵相加 -> 正文阅读

[人工智能]4_OpenCV矩阵相加

1. cv::add()

两个矩阵简单的相加运算,将src1中的所有元素加到src2中的相应元素中,并将结果放入dst中。可以使用加法或累加运算符实现。dst = src1 + src2; 或src2 += src1;

函数原型:

void cv::add(
	cv::InputArray src1,
	cv::InputArray src2,
	cv::OutputArray dst,  // result array
	cv::InputArray mask = cv::noArray(),  // optional, do only where nonzero
	int dtype = -1  // Output type for result array
);

dst_i = saturate(| src1_i + src2_i |)

2. cv::addWeighted

cv::addWeighted()函数与cv::add()类似,但cv::addWeighted()的计算公式是:

dst_i = saturate(src_i * α + src2_i * β + γ)

cv::addWeighted()函数原型:

void cv::addWeighted(
	cv::InputArray src1,   // First Input array
	double alpha,  // Weight for first array
	cv::InputArray src2,  // second input array
	double beta,  // weight for second input array
	double gamma,  // offset added to weight sum
	cv::OutputArray dst,  // result array
	int dtype = -1
);

如果两个源图像的类型相同,那么可以是任意类型,可以有任意通道。

该函数的应用之一是可以实现alpha混合(本质上是实现透明效果)。alpha混合时,α(取值在0-1之间)是src1的混合强度,将β=1-α,γ设置为0,可以转换为标准的alpha混合方程:

dst_i = asturate(src1_i * α + src2_i * (1-α))

示例代码:

	std::string str_src1 = "alpha_src1.jpg";
	std::string str_src2 = "alpha_src2.jpg";

	cv::Mat img1 = cv::imread(str_src1.c_str());
	cv::Mat img2 = cv::imread(str_src2.c_str());
	if (img1.empty() || img2.empty()) {
		std::cout << "ERROR: Open image FAIL!\n";
		return;
	}
	int nX = 66;  // 如下值按照需要更改
	int nY = 16;
	int nROIW = 246 - nX;
	int nROIH = 161 - nY;
	double alpha = 0.4;
	double beta = 1 - alpha;
	double gamma = 0.0;
	cv::Mat roi1(img1, cv::Rect(0, 0, nROIW, nROIH));
	cv::Mat roi2(img2, cv::Rect(nX, nY, nROIW, nROIH));

	cv::addWeighted(roi1, alpha, roi2, beta, gamma, roi1);
	cv::namedWindow(str_src1, cv::WINDOW_NORMAL);
	cv::imshow(str_src1, img1);
	cv::waitKey(0);
	cv::destroyAllWindows();

结果显示

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:11:31  更:2022-03-11 22:12:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:49:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码