首页 > 其他 > 详细

opencv —— 线性混合操作 addWeighted()

时间:2019-12-04 22:32:57      阅读:121      评论:0      收藏:0      [点我收藏+]

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

  • InputArray 类型的 src1,需要加权的第一个数组,通常是一个 Mat
  • double 类型的 alpha,第一个数组的权重
  • InputArray 类型的 src2,需要加权的第二个数组,需要和第一个数组拥有相同的尺寸和通道数
  • double 类型的 beta,第二个数组的权重
  • double 类型的 gamma,
  • OutputArray 类型的 dst,输出的数组,需要和输入的两个数组拥有相同的尺寸和通道数
  • int 类型的 dtype ,输出阵列的可选深度,默认值为 -1。

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

代码示例:

#include<opencv.hpp>
using namespace cv;
int main() {
Mat srcImage1, srcImage2, dstImage;
int intAlpha = 50;//接收控制条数值

//创建控制条 namedWindow(
"Control", WINDOW_AUTOSIZE); createTrackbar("Alpha", "Control", &intAlpha, 100);
double alpha, beat; srcImage1 = imread("C:/Users/齐明洋/Desktop/3.jpg"); srcImage2 = imread("C:/Users/齐明洋/Desktop/4.jpg");
while (true) {
alpha
= intAlpha / 100.0;//第一个数组权重 beat = 1.0 - alpha;//第二个数组权重
addWeighted(srcImage1, alpha, srcImage2, beat,
0.0, dstImage); imshow("合成图", dstImage); char Key = (char)waitKey(1); if (Key == 1) break; } }

结果:

技术分享图片

 技术分享图片

 技术分享图片

opencv —— 线性混合操作 addWeighted()

原文:https://www.cnblogs.com/bjxqmy/p/11986135.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!