#color-space #image #rgb #hsl #lab #luv #graphics

nightly app image-decompose

将图像分解为不同颜色空间中的单独通道

4个版本 (2个破坏性更新)

0.4.1 2021年5月21日
0.4.0 2021年5月15日
0.3.0 2021年5月14日
0.1.0 2021年5月13日

#18 in #lab

GPL-3.0-or-later

1MB
719

image-decompose

该工具将RGB图像分解为不同颜色空间中的通道。支持sRGB(包括线性RGB)、HSL、HSV、HBW、XYZ、xyY、L*a*b*、LChab、L*u*v*、LCHuv、CMY和CMYK模型。

对于这些中的每一个,程序将加载输入图像作为sRGB图像,将其转换为指定的颜色空间,然后创建一个包含坐标的图像

示例

示例图像包含在data目录中,可用于测试程序

cargo run -- -y --resize 300x400 --crop 150x300+75+50 \
             -o out data/umbrella-sky.jpg

因此,该工具生成了一些WebP图像,并将它们以umbrella-sky-*.webp模式保存到out目录中。每个图像都包括将源图像分解为给定颜色空间中单独通道的过程。

例如

sRGB

An photo with its decomposition into red, green and blue channels

可能是最熟悉的分解,显示了图像中每个像素的红、绿和蓝色含量。RGB模型是加性的,因此结果是所有这些颜色的总和。

HSL

An photo with its decomposition into hue, saturaiton and lightens channels of HSL model

HSL通过引入更自然的色调、饱和度和亮度控制来尝试提高用户友好性。但是,该模型并不是感知均匀的,因此只改变色调会影响颜色的亮度。

色调通道中的黑色斑点表示源图像中的灰色颜色(包括白色和黑色),对于这些颜色色调是未定义的。

L*u*v*和LChuv

An photo with its decomposition into L*, u* and v* channels

An photo with its decomposition into L*, C* and hue channels of LCh(uv) model

L*u*v*颜色空间试图实现感知均匀性。分解演示了L*通道对应于亮度,而u*和v*坐标位于绿色-红色和蓝色-黄色轴上。

L*C*h模型通过使用更熟悉的色调和色度值来表示色度,使模型更容易解释。

CMY和CMYK

An photo with its decomposition into cyan, magenta and yellow channels

An photo with its decomposition into cyan, magenta, yellow and black channels

CMY和CMYK颜色模型是减性的。这可以通过通道是图像的“逆”来证明。图像中红色越少,使用的青色就越多,同样适用于绿色-品红色和蓝色-黄色配对。在CMYK模型中,黑色(或键)通道的逆尤其明显。

依赖项

~27MB
~234K SLoC