从颜色到灰度的各种映射

时间:2015-12-04 17:32:22

标签: imagemagick

我想将一组彩色图像转换为灰度图像。我使用ImageMagick:

convert colorimage.png -colorspace Gray bwimage.png

但是对于每个图像,有些特征在转换后消失或变得难以察觉。例如,使用两种颜色的图像:

convert -size 50x100 xc:lightgray xc:pink +append lgraypink.png

gray-pink in color

然后转换为灰度:

convert lgraypink.png -colorspace Gray lgraypink-gray.png

gray-pink in B&W

很难看出这种区别。

我正在寻找颜色到B& W的转换,例如,产生对应于不同映射的三个图像。然后将三个图像提供给用户,并且他们将被要求选择一个。如何调整映射以生成不同的B& W图像?

1 个答案:

答案 0 :(得分:0)

你可以“响应变化”对各种R,G和B组件的比例如下:

convert image.png -channel R -evaluate multiply .2 \
                  -channel G -evaluate multiply .5 \
                  -channel B -evaluate multiply .3 \
                   +channel -separate -compose add -flatten gray_253.png

convert image.png -channel R -evaluate multiply .3 \
                  -channel G -evaluate multiply .2 \
                  -channel B -evaluate multiply .5 \
                   +channel -separate -compose add -flatten gray_325.png

convert image.png -channel R -evaluate multiply .5 \
                  -channel G -evaluate multiply .3 \
                  -channel B -evaluate multiply .2 \
                   +channel -separate -compose add -flatten gray_532.png

所以第一个产生的灰度由20%的红色,50%的绿色和30%的蓝色等组成......

另一个想法,如果你有兴趣区分颜色(即色调),可能会转换为HSL颜色空间并丢弃饱和度和亮度,只留下色调然后对比度拉伸到黑色到白色的整个范围音:

convert image.png -colorspace hsl -separate -delete 1,2 -auto-level result.png