如何使用OpenCV在Python中改变图像的对比度和亮度?

如何使用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() 方法来改变对比度和亮度

  • 显示调整后对比度和亮度的图像。

让我们看一下改变图像对比度和亮度的示例。

输入图像

我们将使用以下图像作为下面示例中的输入文件。

如何使用OpenCV在Python中改变图像的对比度和亮度?

示例

在这个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()

输出

当你执行上面的代码时,它会产生以下输出窗口 –

如何使用OpenCV在Python中改变图像的对比度和亮度?

例子

在这个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()

输出:

当你执行以上的代码时,它会在窗口中产生以下的 输出

如何使用OpenCV在Python中改变图像的对比度和亮度?

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程