计算数组加权和:addWeighted

可实现两个大小、类型均相同的数组(一般为 Mat 类型)按照设定权重叠加在一起。

void addWeighted(InputArray src1,double alpha,InputArray src2,double beta,double gamma,OutputArray dst,int dtype =-1);

  • src1,需要加权的第一个数组,通常是一个 Mat。
  • alpha,第一个数组的权重。
  • src2,需要加权的第二个数组,需要和第一个数组拥有相同的尺寸和通道数。
  • beta,第二个数组的权重。
  • gamma,dst[i] = src1[i] * alpha + src2[i] * beta + gamma ; 通常设为 0。
  • dst,输出的数组,需要和输入的两个数组拥有相同的尺寸和通道数。
  • dtype ,输出阵列的可选深度,默认值为 -1。深度为数据存储类型,有 8 位,16 位,32 位等等。

代码示例:

#include<opencv.hpp>
using namespace cv;
Mat srcImage1, srcImage2, dstImage;
double alpha, beat;
int alpha_value = ;//接收控制条数值
void change_alpha(int, void*) {
alpha = alpha_value / 100.0;//第一个数组权重
beat = 1.0 - alpha;//第二个数组权重
addWeighted(srcImage1, alpha, srcImage2, beat, 0.0, dstImage);
imshow("合成图", dstImage);
}
int main() {
srcImage1 = imread("C:/Users/齐明洋/Desktop/3.jpg");
srcImage2 = imread("C:/Users/齐明洋/Desktop/4.jpg");
//创建控制条
namedWindow("Control");
createTrackbar("Alpha", "Control", &alpha_value, , change_alpha);
waitKey();
}

结果:

opencv —— addWeighted 图像叠加(计算数组加权和)的更多相关文章

  1. opencv:图像轮廓计算

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  2. [OpenCV] 4、图像叠加 addWeighted

    >_<" 这次主要是图像叠加的基本操作: >_<" cv::addWeighted(imageROI, 1.0, logo, 0.6, 0, imageRO ...

  3. opencv 3 core组件进阶(2 ROI区域图像叠加&图像混合;分离颜色通道、多通道图像混合;图像对比度,亮度值调整)

    ROI区域图像叠加&图像混合 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp&g ...

  4. Opencv 图像叠加 添加水印

    Opencv 图像叠加 添加水印 C++: void Mat::copyTo(OutputArray m) const C++: void Mat::copyTo(OutputArray m, Inp ...

  5. OpenCV学习:实现简单的图像叠加

    本实例使用简单的线性叠加方法来实现两幅图像的叠加,主要使用的知识如下: 1)线性融合 2)addWeighted函数 //! computes weighted sum of two arrays ( ...

  6. opencv —— calcHist、minMaxLoc 计算并绘制图像直方图、寻找图像全局最大最小值

    直方图概述 简单来说,直方图就是对数据进行统计的一种方法,这些数据可以是梯度.方向.色彩或任何其他特征.它的表现形式是一种二维统计表,横纵坐标分别是统计样本和该样本对应的某个属性的度量. 计算直方图: ...

  7. 学习 opencv---(3) ROI 区域图像叠加&初级图像混合

    在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操 ...

  8. 深入学习OpenCV中图像灰度化原理,图像相似度的算法

    最近一段时间学习并做的都是对图像进行处理,其实自己也是新手,各种尝试,所以我这个门外汉想总结一下自己学习的东西,图像处理的流程.但是动起笔来想总结,一下却不知道自己要写什么,那就把自己做过的相似图片搜 ...

  9. Android OpenCV实现图片叠加,水印

    关于如何用纯OpenCV实现图片叠加的例子实在是太少,太多的是使用 C++,JNI实现的,如果要用C++的话,我们为啥不转行做C++ 下面的例子基于 Android JavaCV 实现了在im_bea ...

随机推荐

  1. Sqlite命令行基本操作

    SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中. 与许多其它数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中. 1.进入命 ...

  2. qt QTreeWidget使用

    itemwidget.h #ifndef ITEMWIDGET_H #define ITEMWIDGET_H #include <QtWidgets/QWidget> #include & ...

  3. spyder学习记录---如何调试

    调试技巧: 当我们想单步执行某段代码(但是不进入调用的函数)时,点击运行当前行. 当我们想进入某个函数内部进行调试,在函数调用处点击进入函数或方法内运行. 当我们不想看函数内部的运行过程时,点击跳出函 ...

  4. 用反射、泛型 改造SqlHelper

    1.  数据准备 public class BaseModel { public int Id { set; get; } } public class Company : BaseModel { p ...

  5. Nice to meet you for the first time .Why do I write blog!

    他们说我不修边幅,因为他们没看到我对细节的追求,他们说我技术宅,因为他们看不懂我的悲欢,他们说我无趣,是因为她们不知道,我在让世界变得更有趣,我把误解拿来自黑,我用工作承载兴趣,我是程序员,是用代码编 ...

  6. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第七节:并发控制与策略

    我们在第五节中提到一个问题,任务队列增长速度太快,与之对应的采集.分析.处理速度远远跟不上,造成内存快速增长,带宽占用过高,CPU使用率过高,这样是极度有害系统健康的. 我们在开发采集程序的时候,总是 ...

  7. 【5min+】 对象映射只有AutoMapper?试试Mapster

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  8. 20200116--python学习第十天

    今日内容 1.参数 2.作用域 3.函数嵌套 内容回顾 线上操作系统:centos py2和py3的区别? 每种数据类型,列举你了解的方法. 3 or 9 and 8 字符串的反转 is 和 == 的 ...

  9. C标准库与嵌入式

    stddef.h,其中包括size_t,sizeof函数返回值,不同平台的大小不一致 Size and pointer difference types[edit] The C language sp ...

  10. 大数四则运算之加法运算--------C语言版(未考虑负数)

    /* 声明两个字符数组,用于存储大数,声明两个整数型数组便于计算,将字符数组中的元素转换为对应整数存于整数数组中,将低位放在整数数组低位,便于对齐计算 判断是否有进位,计算结果高位先输出,从数组后往前 ...