这是最简单、最高效、最常用的图像亮度与对比度调节方法,专门用于画面过暗、过亮、发灰、模糊、对比度不足等视觉优化场景,是图像处理中最基础的画质增强工具。
代码核心就是:src.ConvertTo(dst, -1, alpha, beta)
图像亮度、对比度调节公式:
输出图像 = 原图像 × 对比度 (alpha) + 亮度 (beta)
- alpha(对比度):控制画面 “清晰 / 发灰”
- beta(亮度):控制画面 “亮 / 暗”
src.ConvertTo(
OutputArray mtx,
int rtype,
double alpha = 1,
double beta = 0
);
参数逐行详细解释
1. src
输入图像(彩色、灰度、二值图都可以)
2. dst
输出图像(自动创建,大小、通道与原图完全一致)
3. rtype = -1
-1 表示:输出图像类型与原图完全一样
不需要修改,固定写 -1 即可。
4. alpha(对比度系数)
- 默认值:1.0(原图不变)
- > 1:增强对比度(画面更清晰、更锐利)
- < 1:降低对比度(画面发灰、变淡)
- 常用范围:0.5 ~ 3.0
5. beta(亮度偏移)
- 默认值:0(原图不变)
- 正数:变亮
- 负数:变暗
- 常用范围:-50 ~ +100
数学原理:dst(x,y) = src(x,y) × alpha + beta,乘 alpha → 控制对比度,加 beta → 控制亮度
效果直观理解
alpha(对比度)
- 0.5 → 图像变灰、变淡
- 1.0 → 不变
- 2.0 → 对比强烈、清晰
beta(亮度)
- -50 → 整体变暗
- 0 → 不变
- +50 → 整体变亮
最常用参数组合:
增强亮度 + 增强对比度:alpha = 1.2; beta = 30;
画面发灰 → 提高对比度:alpha = 1.5; beta = 10;
图像过曝 → 降低亮度:alpha = 0.9; beta = -30;
优点
- 速度极快(底层 C++ 优化)
- 支持彩色图、灰度图
- 简单、稳定、无副作用
- 适合实时预览调节
注意事项
- alpha 不要太大(超过 3 会丢失细节)
- beta 不要太大(会导致纯白 / 纯黑)
- 自动防止像素溢出(自动截断 0~255)
- 不修改原图,输出新图
public override Mat Execute(Mat src)
{
Mat dst = new Mat();
// 两种写法相同
// dst = src*alpha + beta
src.ConvertTo(dst, -1, Alpha, Beta);
return dst;
}
若文章对您有帮助,可以激励一下我哦,祝您平安幸福!
| 微信 | 支付宝 |
|---|---|
![]() |
![]() |

