alpha = 1.5 # 对比度beta = 50 # 亮度img_contrast = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
时间: 2023-08-12 17:06:13 浏览: 195
这段代码使用了 `cv2.convertScaleAbs()` 函数来调整图像的亮度和对比度。其中,`alpha` 表示对比度的缩放系数,`beta` 表示亮度的增加量。这个函数的作用是将输入图像中的像素值线性变换,使其按照下面的公式进行缩放和平移:
```
dst(i, j) = cv::saturate_cast<uchar>(alpha * src(i, j) + beta)
```
其中,`src(i, j)` 表示输入图像中第 `(i, j)` 个像素的值,`dst(i, j)` 表示输出图像中第 `(i, j)` 个像素的值,`cv::saturate_cast<uchar>` 表示将结果转换为 8 位无符号整数,以避免像素值超出 0~255 的范围。
通过调整 `alpha` 和 `beta` 的值,可以实现不同程度的对比度和亮度调整。例如,设置 `alpha=2.0` 和 `beta=30` 可以使图像更加明亮和对比。
相关问题
使用cv2.convertScaleAbs函数编写自适应调整图像亮度和对比度的代码
下面是使用 `cv2.convertScaleAbs` 函数实现自适应调整图像亮度和对比度的代码示例:
```
import cv2
import numpy as np
def adjust_gamma(image, gamma=1.0):
# build a lookup table mapping the pixel values [0, 255] to
# their adjusted gamma values
invGamma = 1.0 / gamma
table = np.array([((i / 255.0) ** invGamma) * 255
for i in np.arange(0, 256)]).astype("uint8")
# apply gamma correction using the lookup table
return cv2.LUT(image, table)
def adjust_brightness_and_contrast(image, alpha=1.0, beta=0.0):
return cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
# 读入图像
img = cv2.imread("image.jpg")
# 调整图像亮度和对比度
img = adjust_gamma(img, gamma=1.5)
img = adjust_brightness_and_contrast(img, alpha=1.5, beta=50)
# 显示调整后的图像
cv2.imshow("Adjusted Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个代码首先使用 `adjust_gamma` 函数来调整图像的亮度,然后使用 `adjust_brightness_and_contrast` 函数来调整图像的对比度。最后,使用 `cv2.imshow` 函数显示调整后的图像。
用OpenCV提高lena.jpg图像的对比度的代码
下面是使用OpenCV提高lena.jpg图像对比度的代码:
```python
import cv2
# 读取图像
img = cv2.imread('lena.jpg')
# 提高对比度
alpha = 1.5 # 对比度增益
beta = 0 # 对比度偏移量
img_contrast = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Contrast Image', img_contrast)
cv2.waitKey(0)
```
代码中的`alpha`和`beta`分别是对比度增益和对比度偏移量,可以根据实际情况进行调整。`convertScaleAbs`函数可以将图像的像素值缩放到0-255的范围内,并将结果转换为整数类型。
阅读全文