使用TransformWrapper()函数实现图像的亮度和对比度调整方法
发布时间:2024-01-03 03:47:41
TransformWrapper()是一个Python函数,用于实现图像的亮度和对比度调整。该函数可以接收一个输入图像,以及亮度和对比度的调整值作为参数,并返回调整后的图像。下面是该函数的具体实现代码:
import cv2
import numpy as np
def TransformWrapper(image, brightness=0, contrast=0):
# 转换图像为浮点类型
image = image.astype(float)
# 调整亮度
image += brightness
# 调整对比度
image *= (contrast / 127.0 + 1)
# 截断超出范围的像素值
image = np.clip(image, 0, 255)
# 转换图像为8位整型
image = image.astype(np.uint8)
return image
上述代码中,首先将输入的图像转换为浮点类型,以便进行亮度和对比度的调整。然后,对图像进行亮度调整,将亮度调整值加到图像的每个像素上。接下来,对图像进行对比度调整,将对比度调整值乘以每个像素,并通过除以127再加1来保持所得结果位于[0,255]范围内。然后,通过np.clip函数将超出像素值范围[0,255]的值进行截断,以避免结果出现异常值。最后,将图像转换为8位整型,并返回调整后的图像。
下面是一个使用TransformWrapper()函数的例子:
import cv2
# 读取图像
image = cv2.imread('input.jpg')
# 调整亮度和对比度
adjusted_image = TransformWrapper(image, brightness=30, contrast=1.5)
# 显示调整后的图像
cv2.imshow('Adjusted Image', adjusted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上述例子中,首先通过cv2.imread函数读取一张输入图像。然后,调用TransformWrapper()函数来对图像进行亮度和对比度的调整。在这个例子中,将亮度调整值设为30,将对比度调整值设为1.5。最后,使用cv2.imshow函数显示调整后的图像。
通过调用TransformWrapper()函数,并传递相应的亮度和对比度参数,可以方便地实现图像的亮度和对比度调整。这个函数可以应用于各种任务,例如图像增强、视频处理等。
