欢迎访问宙启技术站
智能推送

使用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()函数,并传递相应的亮度和对比度参数,可以方便地实现图像的亮度和对比度调整。这个函数可以应用于各种任务,例如图像增强、视频处理等。