利用Python中的skimage.exposurerescale_intensity()函数实现图像的亮度调整
发布时间:2023-12-11 05:37:20
在Python中,我们可以使用skimage库中的exposure模块提供的rescale_intensity()函数来实现图像的亮度调整。这个函数可以将图像的像素值重新缩放到指定的范围内,从而实现图像的亮度调整。
下面是一个使用rescale_intensity()函数实现亮度调整的示例代码:
import matplotlib.pyplot as plt
from skimage import data, exposure
# 加载示例图像
image = data.camera()
# 将图像像素值缩放到[0, 1]范围内
image_rescaled = exposure.rescale_intensity(image)
# 将图像像素值缩放到[150, 200]范围内
image_rescaled_range = exposure.rescale_intensity(image, in_range=(150, 200))
# 显示原始图像和调整亮度后的图像
fig, axes = plt.subplots(1, 3, figsize=(10, 3))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original')
axes[0].axis('off')
axes[1].imshow(image_rescaled, cmap='gray')
axes[1].set_title('Rescaled')
axes[1].axis('off')
axes[2].imshow(image_rescaled_range, cmap='gray')
axes[2].set_title('Rescaled with Range')
axes[2].axis('off')
plt.show()
在这个例子中,我们首先使用data模块中的camera()函数加载了一个示例图像。然后,通过调用rescale_intensity()函数,我们将图像像素值重新缩放到[0, 1]的范围内,生成了一个亮度调整后的图像。接着,我们再次调用rescale_intensity()函数,并通过in_range参数指定了新的像素值范围[150, 200],生成了另一个亮度调整后的图像。最后,我们使用matplotlib库将原始图像、 次亮度调整后的图像和第二次亮度调整后的图像显示出来。
运行这段代码,可以得到如下图所示的图像显示窗口:

从上面的图中可以看出,图像的亮度调整后,原始的相对亮度差异得到了平凡和调整。通过不同的参数设置,我们可以实现不同的亮度调整效果。
