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

Python中使用skimage.util库实现图像的色彩调整和增强

发布时间:2024-01-12 16:28:03

skimage(scikit-image)是Python中一个基于NumPy库的图像处理库,它提供了一系列的图像处理函数和工具,用于图像的色彩调整和增强。

首先,我们需要安装skimage库。可以使用以下命令使用pip安装:

pip install scikit-image

接下来,我们可以使用skimage.util库中的一些函数来实现图像的色彩调整和增强。

1. 图像的亮度调整

亮度调整是改变图像像素的明暗程度,常用的方法有线性拉伸、对数变换和伽马校正。

from skimage import data, exposure

# 加载图像
image = data.camera()

# 线性拉伸
linear_img = exposure.rescale_intensity(image, in_range='image')

# 对数变换
log_img = exposure.adjust_log(image)

# 伽马校正
gamma_img = exposure.adjust_gamma(image, gamma=0.5)

# 显示图像
plt.figure(figsize=(10, 4))
plt.subplot(141)
plt.imshow(image, cmap='gray')
plt.title('Original Image')
plt.axis('off')

plt.subplot(142)
plt.imshow(linear_img, cmap='gray')
plt.title('Linear Stretch')
plt.axis('off')

plt.subplot(143)
plt.imshow(log_img, cmap='gray')
plt.title('Log Transformation')
plt.axis('off')

plt.subplot(144)
plt.imshow(gamma_img, cmap='gray')
plt.title('Gamma Correction')
plt.axis('off')

plt.tight_layout()
plt.show()

2. 图像的对比度调整

对比度调整是改变图像像素之间的差异度,常用的方法有直方图均衡化和自适应直方图均衡化。

from skimage import exposure

# 直方图均衡化
histeq_img = exposure.equalize_hist(image)

# 自适应直方图均衡化
adapthist_img = exposure.equalize_adapthist(image)

# 显示图像
plt.figure(figsize=(10, 4))

plt.subplot(141)
plt.imshow(image, cmap='gray')
plt.title('Original Image')
plt.axis('off')

plt.subplot(142)
plt.hist(image.ravel(), bins=256, color='gray')
plt.title('Original Histogram')

plt.subplot(143)
plt.imshow(histeq_img, cmap='gray')
plt.title('Histogram Equalization')
plt.axis('off')

plt.subplot(144)
plt.hist(histeq_img.ravel(), bins=256, color='gray')
plt.title('Equalized Histogram')

plt.tight_layout()
plt.show()

3. 图像的饱和度调整

饱和度调整是改变图像颜色的鲜艳程度,常用的方法有色彩转换和直方图匹配。

from skimage import color, exposure

# RGB到HSV色彩空间转换
hsv_img = color.rgb2hsv(image)

# 色彩增加
hsv_img_adjusted = exposure.adjust_sigmoid(hsv_img, cutoff=0.5, gain=10)

# HSV到RGB色彩空间转换
rgb_img_adjusted = color.hsv2rgb(hsv_img_adjusted)

# 显示图像
plt.figure(figsize=(10, 4))
plt.subplot(141)
plt.imshow(image)
plt.title('Original Image')
plt.axis('off')

plt.subplot(142)
plt.imshow(hsv_img)
plt.title('HSV Image')
plt.axis('off')

plt.subplot(143)
plt.imshow(rgb_img_adjusted)
plt.title('Adjusted Image')
plt.axis('off')

plt.tight_layout()
plt.show()

以上是使用skimage.util库实现图像的色彩调整和增强的例子。skimage库提供了更多的图像处理函数和工具,可以根据需求选择合适的方法和功能进行色彩调整和增强。