scikit-image库--灰度图像着色(六)

灰度图像着色

用某种颜色对图像进行人工着色很有用,可以突出显示图像的特定区域,也可以只是激活灰度图像。本例通过缩放RGB值和调整HSV颜色空间中的颜色来演示图像着色。

在二维图像中,彩色图像通常表示为二维阵列的RGB-3层,其中3层表示图像的(R)ED,(G)REEN和(B)LUE通道。获取着色图像的最简单方法是将每个RGB通道设置为每个通道使用不同的乘数缩放的灰度图像。例如,将绿色通道和蓝色通道相乘0只留下红色通道,并生成明亮的红色图像。同样地,将蓝色通道归零只留下红色和绿色通道,它们组合成黄色。

import matplotlib.pyplot as plt
from skimage import data
from skimage import color
from skimage import img_as_float
%matplotlib inline
grayscale_image = img_as_float(data.camera()[::2, ::2])  # 表示[起始位置:终止位置:间隔距离] ,[::2, ::2]即行列缩小一半
image = color.gray2rgb(grayscale_image) #灰度单通道转为三通道

red_multiplier = [1, 0, 0] #[r,g,b] 
yellow_multiplier = [1, 1, 0]

fig, (ax1, ax2,ax3) = plt.subplots(ncols=3, figsize=(18,5),
                               sharex=True, sharey=True)
ax1.imshow(red_multiplier * image)
ax2.imshow(yellow_multiplier * image)
ax3.imshow(grayscale_image,'gray')
#ax4.imshow(image)

在这里插入图片描述

在许多情况下,处理RGB值可能不理想。因此,有许多其他颜色空间可以用来表示颜色图像。一种流行的颜色空间称为hsv,它表示色调(颜色)、饱和度(色彩)和值(~亮度)。例如,一种颜色(色调)可能是绿色,但它的饱和度是绿色的强度——橄榄色在低端,霓虹色在高端。

在一些实现中,hsv中的色调从0变为360,因为色调环绕在一个圆中。然而,在Scikit-image中,色调是从0到1的浮点值,因此色调、饱和度和值都具有相同的比例。

下面,在色调中绘制一个线性渐变,饱和度和值一直向上:

import numpy as np

hue_gradient = np.linspace(0, 1)
print(hue_gradient)
hsv = np.ones(shape=(1, len(hue_gradient), 3), dtype=float
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值