使用Python中的skimage.exposurerescale_intensity()函数调整图像的灰度范围
发布时间:2023-12-11 05:39:02
skimage库(即scikit-image库)是一个基于scipy库开发的用于图像处理的Python库。其中,exposure模块提供了一些用于图像亮度调整的函数,其中包括rescale_intensity()函数。
rescale_intensity()函数可以将图像的灰度范围调整到指定的范围内。它的基本用法如下:
rescaled_image = skimage.exposure.rescale_intensity(image, in_range=(low_percentile, high_percentile), out_range=(new_min, new_max))
对于给定的输入图像image,该函数会将其灰度值的范围调整到指定的in_range范围内,并重新映射到out_range范围内。参数in_range和out_range都可以通过指定百分比来进行调整。
下面,我们将通过一个具体的例子来演示rescale_intensity()函数的使用。
import skimage
from skimage import data, exposure
import matplotlib.pyplot as plt
# 读取图像
image = data.camera()
# 将灰度范围调整到0-1之间
rescaled_image = skimage.exposure.rescale_intensity(image, in_range=(0, 255), out_range=(0, 1))
# 显示原图和调整后的图像
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(image, cmap='gray')
plt.title('Original Image')
plt.subplot(1, 2, 2)
plt.imshow(rescaled_image, cmap='gray')
plt.title('Rescaled Image')
plt.show()
运行以上代码,可以得到如下图所示的结果:

上述代码首先使用data.camera()函数加载一个示例图像。然后,通过调用rescale_intensity()函数,将图像的灰度范围从0-255调整到0-1之间。最后,使用matplotlib.pyplot库来显示原图和调整后的图像。
从结果来看,调整后的图像的灰度范围已经被重新映射到0-1之间,达到了预期的效果。
需要注意的是,rescale_intensity()函数只会调整图像的灰度值,并不会改变图像的大小和形状。另外,函数中的in_range和out_range参数可以根据实际情况进行调整,以获得 的调整效果。
