Qt-OpenCV学习笔记--基本函数操作--addWeighted(图像融合)

本文围绕OpenCV的addWeighted函数展开,介绍了该函数各参数含义,如第一个数组、其权重、第二个数组及其权重等,还给出了函数作用的矩阵表达式,此外包含测试代码和测试结果,是一篇关于OpenCV函数学习的笔记。

综述

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

  • 第一个参数,InputArray 类型的srcl, 表示需要加权的第一个数组,常常填一个Mat;
  • 第二个参数,double类型的alpha, 表示第一个数组的权重;
  • 第三个参数,InputArray 类型的src2, 表示第二个数组,它需要和第一个数组拥有相同的尺寸和通道数;
  • 第四个参数,double 类型的beta, 表示第二个数组的权重值;
  • 第五个参数,double类型的gamma, 一个加到权重总和上的标量值。其含义通过接下来列出的式子自然会理解;
  • 第六个参数,OutputArray 类型的dst,输出的数组,它和输入的两个数组拥有相同的尺寸和通道数:
  • 第七个参数,int类型的dtype, 输出阵列的可选深度,有默认值-1。当两个输入数组具有相同的深度时,这个参数设置为-1 (默认值),即等同于srcl .depth()。

addWeighted 函数的作用的矩阵表达式:

        dst = src1[I] * alpha + src2[I] * beta + gamma

测试代码

#include "widget.h"
#include "ui_widget.h"

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //载入图像
    cv::Mat mat1 = imread("C:/opencv/111.jpg");
    cv::Mat mat2 = imread("C:/opencv/333.jpg");

    //输出图片
    cv::Mat mat3;

    //融合
    cv::addWeighted(mat1,0.8,mat2,0.8,0,mat3);

    namedWindow("显示器0", WINDOW_AUTOSIZE );
    imshow("显示器0", mat1 );

    namedWindow("显示器1", WINDOW_AUTOSIZE );
    imshow("显示器1", mat2 );

    namedWindow("显示器2", WINDOW_AUTOSIZE );
    imshow("显示器2", mat3 );

}

Widget::~Widget()
{
    delete ui;
}

测试结果

参考

Opencv学习笔记:addWeighted函数(图像融合) 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值