C++ OpenCV线性混合操作

Posted 微卡智享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ OpenCV线性混合操作相关的知识,希望对你有一定的参考价值。

线性混合操作

即可以把两张图像混合成一张图像的操作.


图像线性混合的数学原理

G(x)=(1-a)F(x)+aQ(x)


注意事项:

1,a的取值范围为0到1之间

2,F(x)和Q(x)为参与混合的两幅图像,G(x)表示输出图像

3,通过对两幅图像的每个像素值做线性加权得到最终的输出图像

4,两幅图像的大小和类型必须完全一致,如果把图像当成一个矩阵

则两个矩阵相加的前提是维度必须一致,否则没有相加的意义。


addWeighted函数

在OpenCV中用于线性混合操作的API为addWeighted函数

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

以上是关于C++ OpenCV线性混合操作的主要内容,如果未能解决你的问题,请参考以下文章

opencv4opencv视频教程 C++ 7手动调整图像亮度与对比度 g(i, j) = αf(i, j) + β(点操作与邻域操作概念)

OpenCV 图像混合

OpenCV 图像混合

OpenCV图像线性变换(图像线性混合亮度和对比度增强线性变换API)

[转] Matlab与C++混合编程(依赖OpenCV)

opencv 图像的线性混合