opencv调整亮度 对比度
时间: 2025-01-23 17:58:15 浏览: 51
### 使用 OpenCV 调整图像亮度和对比度
#### 方法概述
调整图像的亮度和对比度是增强图像质量的重要手段之一。通过改变图像中的每个像素值,可以使图像更清晰或更适合特定应用场景。
#### 实现原理
为了实现这一功能,在编程中通常采用线性变换的方式:
\[ g(i,j)=α⋅f(i,j)+β \]
其中 \( f(i,j) \) 表示原始图像在位置 (i, j) 处的颜色强度;\( α \) 控制对比度,而 \( β \) 则用来调节亮度[^4]。
对于上述公式而言,当参数 \( α>1 \),则表示增加对比度;反之,则降低对比度。同样地,正值的 \( β \) 增加整体亮度,负数减少亮度。
为了避免数值超出有效范围(即0到255之间),OpenCV 提供了一个名为 `cv::saturate_cast` 的工具函数来自动处理可能发生的溢出情况[^2]。
#### Python 示例代码
下面是一段基于Python语言并利用OpenCV库完成此任务的具体实例:
```python
import cv2
import numpy as np
def adjust_brightness_contrast(image_path, alpha=1.0, beta=0):
image = cv2.imread(image_path)
adjusted_image = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
return adjusted_image
if __name__ == "__main__":
img_file = "example.jpg"
# 设置对比度因子(大于1为提高),以及亮度偏移量
contrast_factor = 1.8
brightness_offset = 30
result_img = adjust_brightness_contrast(img_file, contrast_factor, brightness_offset)
cv2.imshow('Original Image', cv2.imread(img_file))
cv2.imshow('Adjusted Image', result_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段程序定义了一个简单的函数 `adjust_brightness_contrast()` ,它接收图片路径作为输入,并允许指定两个额外参数:一个是控制对比度的比例系数 (`alpha`),另一个是用来增减亮度的固定增量(`beta`) 。最后展示了原图与经过修改后的效果图以便比较[^3]。
阅读全文
相关推荐

















