如何使用Python中的OpenCV更改图像的对比度和亮度?
在OpenCV中,为了改变图像的对比度和亮度,我们可以使用 cv2.convertScaleAbs() 方法。我们使用的方法的语法如下−
cv2.convertScaleAbs(image,alpha,beta)
其中
- image 是原始的输入图像。
-
alpha 是对比度值。为了降低对比度,请使用0<alpha<1。对于更高的对比度,请使用alpha>1。
-
beta是亮度值。亮度值的良好范围为[-127,127]
我们还可以应用 cv2.addWeighted() 方法来改变图像的对比度和亮度。我们在示例2中讨论了它。
步骤
要更改图像的对比度和亮度,可以按照以下步骤操作−
- 导入所需的库 OpenCV 。确保您已经安装了它。
-
使用 cv2.imread() 方法读取输入图像。指定图像的完整路径。
-
定义 alpha (它控制对比度)和 beta (它控制亮度),并调用 convertScaleAbs() 函数来更改图像的对比度和亮度。此函数返回具有调整对比度和亮度的图像。或者,我们也可以使用 cv2.addWeighted() 方法来改变对比度和亮度。
-
显示调整后对比度和亮度的图像。
让我们看一下如何更改图像的对比度和亮度的示例。
输入图像
我们将使用以下图像作为以下示例中的输入文件。
示例
在此Python程序中,我们使用 cv2.convertScaleAbs() 方法更改输入图像的对比度和亮度。
#导入所需的库
import cv2
#读取输入图像
image = cv2.imread('food1.jpg')
#定义alpha和beta
alpha = 1.5 #对比度控制
beta = 10 #亮度控制
#调用convertScaleAbs函数
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
#显示输出图像
cv2.imshow('adjusted', adjusted)
cv2.waitKey()
cv2.destroyAllWindows()
输出
执行上述代码时,它将产生以下 输出 窗口-
示例
在此Python程序中,我们使用 cv2.addWeighted() 方法更改输入图像的对比度和亮度。
# 导入所需库
import cv2
# 读取输入图像
img = cv2.imread('food1.jpg')
# 定义对比度和亮度值
contrast = 5. # 对比度控制(0到127)
brightness = 2. # 亮度控制(0-100)
# 调用addWeighted函数。 使用beta = 0有效地仅操作一个图像
out = cv2.addWeighted(img, contrast, img, 0, brightness)
# 显示有更改后的对比度和亮度的图像
cv2.imshow('adjusted', out)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
当执行以上代码时,它将产生以下 输出 窗口。