如何使用OpenCV在Python中改变图像的对比度和亮度?
在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 the required library
import cv2
# read the input image
image = cv2.imread('food1.jpg')
# define the alpha and beta
alpha = 1.5 # Contrast control
beta = 10 # Brightness control
# call convertScaleAbs function
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
# display the output image
cv2.imshow('adjusted', adjusted)
cv2.waitKey()
cv2.destroyAllWindows()
输出
当你执行上面的代码时,它会产生以下输出窗口 –
例子
在这个Python程序中,我们使用 cv2.addWeighted() 方法来改变输入图像的对比度和亮度。
# import required library
import cv2
# read the input image
img = cv2.imread('food1.jpg')
# define the contrast and brightness value
contrast = 5. # Contrast control ( 0 to 127)
brightness = 2. # Brightness control (0-100)
# call addWeighted function. use beta = 0 to effectively only
operate on one image
out = cv2.addWeighted( img, contrast, img, 0, brightness)
# display the image with changed contrast and brightness
cv2.imshow('adjusted', out)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出:
当你执行以上的代码时,它会在窗口中产生以下的 输出 。