如何使用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()
输出
执行上述代码时,将生成以下输出窗口。
广告