Image processing Imagemagick Spotify-like duotone叠加

Image processing Imagemagick Spotify-like duotone叠加,image-processing,imagemagick,Image Processing,Imagemagick,是否可以使用纯imagemagick命令实现这种程度的颜色操纵 我想这可能是通过级别颜色和形状的特殊透明png来实现的。 在对颜色级别进行任何操作之前,是否需要将原始颜色更改为黑白?这是在Imagemagick中执行此操作的一种方法。是的,你需要遮罩图像。您可能希望也可能不希望将输入转换为灰度。但在这种情况下,我想你应该从灰度开始 以下是我的意见: 在这里,我创建了4个简单的非重叠矩形区域二进制遮罩。但在您的示例中,看起来部分黄色与绿色重叠,形成橙色 convert -size 100x29

是否可以使用纯imagemagick命令实现这种程度的颜色操纵

我想这可能是通过
级别颜色
和形状的特殊透明png来实现的。

在对颜色级别进行任何操作之前,是否需要将原始颜色更改为黑白?

这是在Imagemagick中执行此操作的一种方法。是的,你需要遮罩图像。您可能希望也可能不希望将输入转换为灰度。但在这种情况下,我想你应该从灰度开始

以下是我的意见:

在这里,我创建了4个简单的非重叠矩形区域二进制遮罩。但在您的示例中,看起来部分黄色与绿色重叠,形成橙色

convert -size 100x299 xc:white -size 300x299 xc:black +append mask1.png
convert -size 100x299 xc:black -size 100x299 xc:white -size 200x299 xc:black +append mask2.png
convert -size 200x299 xc:black -size 100x299 xc:white -size 100x299 xc:black +append mask3.png
convert -size 300x299 xc:black -size 100x299 xc:white +append mask4.png

然后,我创建了4个不同的彩色图像,大小与输入相同,并依次将它们与保存在内存中图像(mpr:img)上的每个遮罩合成,该图像是我从灰度图像创建的

合成方法:混合(50%-50%) (注意,如果需要,可以使用-define compose:args=50,50通过更改两个数字应用其他混合比,但保持总数=100)


合成方法:相乘

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -colorize 100 \) mask1.png -compose multiply -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -colorize 100 \) mask2.png -compose multiply -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -colorize 100 \) mask3.png -compose multiply -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -colorize 100 \) mask4.png -compose multiply -composite \
result2.jpg
convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -colorize 100 \) mask1.png -compose overlay -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -colorize 100 \) mask2.png -compose overlay -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -colorize 100 \) mask3.png -compose overlay -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -colorize 100 \) mask4.png -compose overlay -composite \
result3.jpg

合成方法:叠加

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -colorize 100 \) mask1.png -compose multiply -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -colorize 100 \) mask2.png -compose multiply -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -colorize 100 \) mask3.png -compose multiply -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -colorize 100 \) mask4.png -compose multiply -composite \
result2.jpg
convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -colorize 100 \) mask1.png -compose overlay -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -colorize 100 \) mask2.png -compose overlay -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -colorize 100 \) mask3.png -compose overlay -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -colorize 100 \) mask4.png -compose overlay -composite \
result3.jpg

合成方法:着色

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -colorize 100 \) mask1.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -colorize 100 \) mask2.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -colorize 100 \) mask3.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -colorize 100 \) mask4.png -compose colorize -composite \
result4.jpg

您可以尝试许多其他的撰写方法。看

您也可以使用+级别的颜色(黑色或白色作为第二种颜色)执行相同的操作

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,red \) mask1.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,green1 \) mask2.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,blue \) mask3.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,yellow \) mask4.png -compose colorize -composite \
result5.jpg


你也可以用浅色来做

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -tint 100 \) mask1.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -tint 100 \) mask2.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -tint 100 \) mask3.png -compose colorize -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -tint 100 \) mask4.png -compose colorize -composite \
result7.jpg

不同的合成方法所得结果不同。下面是最后3个“合成结束”,而不是“合成着色”:

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,red \) mask1.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,green1 \) mask2.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,blue \) mask3.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img +level-colors black,yellow \) mask4.png -compose over -composite \
result5b.jpg



另请参阅,了解使用自定义彩色查找表图像和-clut函数的方法。以下是该方法:

convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:red xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask1.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:green1 xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask2.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:blue xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask3.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:yellow xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask4.png -compose over -composite \
result8.jpg


在我看来,这是与您原始示例中使用的最接近的着色结果。

您能在应用效果之前提供输入图像吗?太棒了!非常感谢您的澄清!请参阅我刚才使用所示链接中的格式duotone方法添加的最后一个示例。在我看来,这是最接近于您在原始示例中使用的着色方法。对于一个单一的非蒙面图像着色,你可能会对我的三色脚本感兴趣,哇!这是一套绝妙的技能和智慧!再次感谢您的奉献精神和乐于帮助!
convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img -fill red -tint 100 \) mask1.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill green1 -tint 100 \) mask2.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill blue -tint 100 \) mask3.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img -fill yellow -tint 100 \) mask4.png -compose over -composite \
result7b.jpg
convert barn.jpg -colorspace gray -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:red xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask1.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:green1 xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask2.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:blue xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask3.png -compose over -composite -write mpr:img +delete \
mpr:img \( mpr:img \( -size 1x1 xc:black xc:yellow xc:white +append -size 1x256 gradient: -rotate 90 +swap -interpolate Bicubic -clut \) -interpolate Bicubic -clut \) mask4.png -compose over -composite \
result8.jpg