博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV笔记(四)——两幅图像线性混合、改变图像的亮度和对比度
阅读量:5930 次
发布时间:2019-06-19

本文共 689 字,大约阅读时间需要 2 分钟。

一、两幅图像线性混合

线性混合,就是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

公式:m(x,y) = saturate \_ cast<rType>( \alpha (*this)(x,y) +  \beta )

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

 

转载于:https://www.cnblogs.com/nipan/p/4109998.html

你可能感兴趣的文章
PHP导出MySQL数据到Excel
查看>>
转sql2005 远程连接问题解决方法
查看>>
Qt的widget与Button添加图片
查看>>
C# 图像处理:Bitmap 与 Image 之间的转换
查看>>
VC++ GDI 总结 一一 CBitmap类
查看>>
TCP/IP之DNS域名解析系统
查看>>
如何限制青少年无节制的玩电脑--使用智能卡登录系统
查看>>
mysql修改用户密码
查看>>
Vue
查看>>
扩大ImageButton响应点击区域的方法
查看>>
类加载过程
查看>>
2017全面JAVA面试经历总结
查看>>
Linux mkdir命令
查看>>
Python 函数(参数组合)
查看>>
bzoj1059 [ZJOI2007]矩阵游戏
查看>>
URL传参数导致乱码
查看>>
编译器给未初始化的全局变量和局部变量分配的存储值
查看>>
使用 XML-RPC 为 C++ 应用程序启用 Web 服务
查看>>
ZOJ 3379 Master Spark
查看>>
(转)android多国语言适配
查看>>