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

使用skimage.transform库实现图像亮度调整的方法及实例

发布时间:2024-01-18 09:55:10

skimage.transform库是Python中的一个图像处理库,可以用于对图像进行各种变换和调整。其中包含了一些用于调整图像亮度的方法。

图像亮度调整是图像处理的一种基本操作,可以通过调整每个像素的亮度值来改变整个图像的亮度。下面是使用skimage.transform库实现图像亮度调整的方法及实例:

1. gamma变换:

gamma变换是一种常用的图像亮度调整方法,可以通过调整图像的gamma值来改变图像的亮度。gamma值通常取[0, 5]之间的值,当gamma<1时,图像亮度会增加;当gamma>1时,图像亮度会减小;当gamma=1时,图像亮度不变。

使用skimage.transform库的exposure.adjust_gamma()方法可以实现gamma变换,具体代码如下:

   from skimage import io, exposure

   # 读取图像
   img = io.imread('input.jpg')

   # 进行gamma变换
   gamma_adjusted = exposure.adjust_gamma(img, gamma=0.5)

   # 保存调整后的图像
   io.imsave('output.jpg', gamma_adjusted)
   

在上面的例子中,首先使用io.imread()方法读取输入图像;然后使用exposure.adjust_gamma()方法对图像的亮度进行gamma变换,参数gamma=0.5表示亮度增加一倍;最后使用io.imsave()方法保存调整后的图像。

2. 对比度拉伸:

对比度拉伸是一种通过线性变换来调整图像亮度分布的方法,可以将图像的亮度范围从原始范围映射到期望的范围。一般可以通过调整图像的灰度值范围来拉伸对比度,实现图像亮度的调整。

使用skimage.transform库的exposure.rescale_intensity()方法可以实现对比度拉伸,具体代码如下:

   from skimage import io, exposure

   # 读取图像
   img = io.imread('input.jpg')

   # 进行对比度拉伸
   contrast_stretched = exposure.rescale_intensity(img, in_range='image', out_range=(0, 255))

   # 保存调整后的图像
   io.imsave('output.jpg', contrast_stretched)
   

在上面的例子中,首先使用io.imread()方法读取输入图像;然后使用exposure.rescale_intensity()方法对图像进行对比度拉伸,参数in_range='image'表示使用图像的原始范围,参数out_range=(0, 255)表示将图像的亮度范围映射到[0, 255];最后使用io.imsave()方法保存调整后的图像。

以上就是使用skimage.transform库实现图像亮度调整的方法及实例。通过调整图像的亮度,可以改变图像的视觉效果,使图像更加清晰、明亮或暗淡。通过skimage.transform库提供的方法,可以方便地实现图像亮度的调整。