ImageMagick:灰度值到RGB值的精确重映射

问题描述 投票:1回答:1

我正在使用ImageMagick 6.8,并且以文本格式创建了LUT颜色表:

# ImageMagick pixel enumeration: 848,1,255,srgb
0,0:   (0  , 0  , 0  )    #000000
1,0:   (226, 226, 224)    #E2E2E0
2,0:   (48 , 74 , 0  )    #304A00
# ... 
# few hundred more colors

每个灰度值只有一种颜色(在我的用例中介于0和848之间)。

因此,我想使用此LUT将灰度图像转换为RGB图像,而没有任何花哨的伽玛校正,色彩空间重映射,插值等。只需直接替换即可。怎么做?

当前问题从头开始:

尝试使用各种选项进行convert lut.txt lut.png总是给我比实际更多的颜色。在LUT中,有540种独特的颜色,但检查生成的PNG,甚至检查identify lut.txt报告615!这意味着LUT根本无法直接解释。

另一方面,即使我成功地正确读取了LUT,或者可能避免将其转换为PNG,也会出现另一个问题。使用-clut将整个灰度范围(0-65535)映射到LUT,所以我想我必须先对其进行归一化。但这从一开始就破坏了灰度输入。

P.S。如果存在大于8位索引调色板的图像格式,这可能是一个有用的答案。然后,将文本LUT用作其调色板,并将灰度光栅用作其像素值。

imagemagick imagemagick-convert
1个回答
1
投票

在Imagemagick中,使用-clut处理带有彩色查找表图像的灰度图像以使灰度图像着色。

首先创建一个具有红色,绿色和蓝色十六进制颜色的三色颜色表LUT图像。我显示了放大的版本。

convert xc:"#ff0000" xc:"#00ff00" xc:"#0000ff" +append colortable.gif

enter image description here

这里是输入-我将为之着色的简单渐变。

enter image description here

现在使用-clut将颜色表图像应用于渐变。

convert gradient.png colortable.gif -clut gradient_colored.png

enter image description here

默认为线性插值。但是,如果您只想查看3种颜色,请使用-interpolate nearest-neighbor

convert gradient.png colortable.gif -interpolate nearest-neighbor -clut gradient_colored2.png

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.