码迷,mamicode.com
首页 > 其他好文 > 详细

OpenCV笔记(四)——两幅图像线性混合、改变图像的亮度和对比度

时间:2014-11-20 11:36:29      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   ar   color   sp   strong   on   bs   

一、两幅图像线性混合

线性混合,就是g(x) = a*f1(x) + b*f2(x)。其中g为输出,f1、f2为输入。a+b=1。

作用1:线性混合可以用于去噪,假设噪声的产生符合均值为零、标准差的独立分布。多个高斯分布求平均值,即可去除噪声。

作用2:用于两张图片的切换。a从大到小变化,b从小到大变化。g就渐渐从f1变到f2。

OpenCV提供了addWeighted函数,完成上述功能:

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

dst = src1*alpha + src2*beta + gamma;

最后一个参数dtype是dst的depth,默认为-1,等同于src1的depth。

 

二、改变图像的亮度和对比度

和线性混合差不多,只不过g(x) = af(x) + b。其中g为输出,f为输入,a和b为常数的系数。

OpenCV提供了convertTo函数完成这个运算:

C++: void Mat::convertTo(OutputArray m, int rtype, double alpha=1, double beta=0 ) const

公式:bubuko.com,布布扣

第二个参数rtype是输出图像的类型信息,一般与输入相同,设定rtype为负数(如-1)即可。

 

OpenCV笔记(四)——两幅图像线性混合、改变图像的亮度和对比度

标签:des   style   http   ar   color   sp   strong   on   bs   

原文地址:http://www.cnblogs.com/nipan/p/4109998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!