如何使用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 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()

输出

执行上述代码时,将生成以下输出窗口。

更新于:2023年8月26日

44K+ 次查看

开启你的职业生涯

完成课程获得认证

开始学习
广告