学习笔记(32):学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程-通过对Mat遍历修改图像亮度和对比度与convertTo性能对比...

立即学习:https://edu.csdn.net/course/play/4789/86629?utm_source=blogtoedu

1.手写函数改变图片的对比度和亮度(改变增益)

g(i,j) = a*f(i,j) + b

a取值1.0~3.0(对比)b取0~100(亮度)

当取值溢出时,将值设为最大值255

opencv提供了一个函数saturate_cast可以起到防止溢出的作用,值大于255就设为255

saturate_cast(表达式);

2.定义一个函数时可以在函数前用

//@para 变量名 变量类型 含义 取值范围

对参数进行说明

3.对输出图像初始化可以用

dst.create(src.rows, src.cols, src.type())

在像素遍历里面可以配置一个通道遍历,使得三个通道同时改变增益

4.opencv提供的改变增益的方法

src.convertTo(dst, -1, a, b);

其中参数2传入一个负值即表示输出图片类型与src一致

5.opencv的内部处理方式使用了多线程处理的方式,效率要比我们手写的处理函数高很多倍

你可能感兴趣的:(研发管理)