编写opencv,减弱彩色图像亮度和对比度
时间: 2024-10-28 07:15:29 浏览: 74
在OpenCV中,要调整彩色图像的亮度和对比度,可以使用`cv2.convertScaleAbs()`函数和一些基本的数学运算。以下是简要步骤:
1. **导入所需的库**:
```python
import cv2
import numpy as np
```
2. **读取图片**:
```python
image = cv2.imread('input_image.jpg')
```
3. **获取原图像的尺寸和通道数(BGR格式)**:
```python
height, width, channels = image.shape
```
4. **创建一个新的矩阵,用于保存调整后的图像**。这里我们先减小亮度然后降低对比度:
- 减少亮度:将每个像素值乘以一个小于1的系数,增加亮度则用大于1的系数。
- 降低对比度:同时放大和缩小颜色通道,通常通过计算每个通道的新亮度值,如`newBrightness = alpha * oldBrightness + beta`,其中`alpha`<1表示减少亮度,`beta`是一个偏移量。
```python
# 调整参数,例如降低亮度50%,降低对比度30%
alpha = 0.5
beta = 30
# 对所有通道应用亮度和对比度调整
rescaled_image = np.clip(image.astype(float) * alpha + beta, 0, 255).astype(np.uint8)
```
这里的`np.clip()`函数用于限制结果在0到255的范围内,因为OpenCV处理的是8位无符号整数图像。
5. **显示原始图像和处理后的图像**:
```python
cv2.imshow("Original Image", image)
cv2.imshow("Adjusted Image", rescaled_image)
# 等待用户按键退出(按任意键)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文
相关推荐
















