我试图实现此目的:使用遮罩图像查看/提取源图像中的像素。
简单的情况可能是使用"任何"掩码中的像素。但最好定义哪个颜色像素应该用于遮蔽("高级情况"在上图中)
我尝试convert source.png mask.png -compose Screen -composite source-filtered.png
,但来自源的像素已被修改..
以下是实际文件的链接:
编辑:添加了实际文件的链接
答案 0 :(得分:2)
也许-fx
操作效果最好。
convert Source.png Mask.png -fx 'v == #E8212D ? u : v' output.png
或
convert Source.png Mask.png -fx 'v == #E8212D ? u : #E6E6E6' output.png
答案 1 :(得分:1)
鉴于您的新单独图像,这是在Imagemagick中执行所需操作的一种方法。
来源:
面膜:
将蒙版转换为二进制图像,白色,其他地方为红色和黑色。然后做一个comply multiply -composite来组合它们。
convert source.png \
\( mask.png -fuzz 1% -fill white -opaque red \
-fill black +opaque white \) \
-compose multiply -composite \
result.png
答案 2 :(得分:1)
是否有实用的方法将此蒙版应用于许多图像?
是的,在Imagemagick中,您可以使用mogrify处理文件夹中的所有图像。我假设您对文件夹中的所有图像使用相同的蒙版图像,并且所有图像的大小都相同。
首先为要更改的所有图像创建一个目录(或使用您拥有的目录)。让我们说它在文件夹test1的桌面上。创建一个新的空目录。让我们在桌面上说文件夹test2。然后从桌面上的彩色蒙版创建二进制蒙版图像。你不能在要更改的png文件夹中有一个png掩码。如果你使面具成为gif,那么它可以在文件夹中,因为mogrify只会处理png,就像我在下面指定的那样。
convert mask.png -fuzz 1% -fill white -opaque red -fill black +opaque white newmask.png
然后使用mogrify处理test1中的所有文件,并将输出放在test2中。
cd
cd desktop/test1
mogrify -format png -path ../test2 -draw 'image multiply 0,0 0,0 "../newmask.png"' *.png
看到
https://www.imagemagick.org/Usage/basics/#mogrify
https://www.imagemagick.org/Usage/basics/#mogrify_compose
答案 3 :(得分:0)
如果您单独提供图像会更好。我把它们裁剪掉了,但它们完全不匹配。不过,您可以看到它如何使用Imagemagick。
首先,这是从蒙版图像中生成仅灰色和白色的背景图像。将红色和蓝色方块都设置为与其他方块相同的灰色。
面具图片:
convert mask.png -fuzz 60% \
-fill "gray(230)" -opaque "rgb(237,28,36)" \
-fill "gray(230)" -opaque "rgb(0,102,179)" \
background.png
现在拍摄背景,源图像并处理蒙版,使红色变为白色,其他一切变为黑色。然后使用二进制掩码图像在背景上合成源。
convert background.png source.png \
\( mask.png -fuzz 1% -fill black +opaque "rgb(237,28,36)" \
-fill white +opaque black \) \
-compose over -composite result.png