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库提供了更多的图像处理函数和工具,可以根据需求选择合适的方法和功能进行色彩调整和增强。
