imagemagick平均图像序列并忽略alpha通道

imagemagick平均图像序列并忽略alpha通道,imagemagick,photoshop,mean,alpha,Imagemagick,Photoshop,Mean,Alpha,我想通过使用Imagemagick获得一系列图像的平均值。因此,我使用以下命令: convert *.png -evaluate-sequence mean MEAN.png 我的每个图像都包含一个alpha通道。我想要的是:通过忽略alpha通道来合并所有图像 当我组合图像时,alpha通道在“mean”方法中被考虑,并且我的最终图像具有透明度。那不是我想要的 结果: 我试图添加参数-alpha off,但是Imagemagick将alpha通道转换为黑色 convert *.png -a

我想通过使用Imagemagick获得一系列图像的平均值。因此,我使用以下命令:

convert *.png -evaluate-sequence mean MEAN.png
我的每个图像都包含一个alpha通道。我想要的是:通过忽略alpha通道来合并所有图像

当我组合图像时,alpha通道在“mean”方法中被考虑,并且我的最终图像具有透明度。那不是我想要的

结果:

我试图添加参数-alpha off,但是Imagemagick将alpha通道转换为黑色

convert *.png -alpha off -evaluate-sequence mean MEAN.png
结果:

Photoshop做得很好。我将所有图像加载到堆栈中,并创建一个智能对象。当我在Photoshop中使用“平均”方法时,最终结果中不考虑alpha通道

我希望使用Imagemagick获得的结果:


有人知道如何使用Imagemagick做到这一点吗?

使用IM 6.8.9.4 Q16或IM 7.0.5.5 Q16 Mac OSX Sierra,这对我来说似乎很好:

使图像透明

convert logo: -transparent white logot.png
刻薄

convert logot.png logot.png logot.png -alpha off -evaluate-sequence mean result.png

magick logot.png logot.png logot.png -alpha off -evaluate-sequence mean result.png
这似乎也可行:

convert logot.png logot.png logot.png -channel rgb -evaluate-sequence mean -alpha off result.png
因此,您可能需要升级ImageMagick(和/或libpng?)


您可以发布一些输入图像的zip文件,以便我们可以使用您的图像进行测试?

使用IM 6.8.9.4 Q16或IM 7.0.5.5 Q16 Mac OSX Sierra,这对我来说似乎很好:

使图像透明

convert logo: -transparent white logot.png
刻薄

convert logot.png logot.png logot.png -alpha off -evaluate-sequence mean result.png

magick logot.png logot.png logot.png -alpha off -evaluate-sequence mean result.png
这似乎也可行:

convert logot.png logot.png logot.png -channel rgb -evaluate-sequence mean -alpha off result.png
因此,您可能需要升级ImageMagick(和/或libpng?)


您可以发布一些输入图像的zip文件,以便我们可以使用您的图像进行测试吗?

也许这种工作方式可以帮助您达到目的,或者至少可以解释问题:

convert xc:"rgba(255,0,0,1)" xc:"rgba(0,0,0,1)" xc:"rgba(0,0,0,0)" -depth 8 -evaluate-sequence mean txt:
输出

# ImageMagick pixel enumeration: 1,1,65535,srgba
0,0: (21845,0,0,43690)  #550000AA  srgba(85,0,0,0.666667)

也许这种工作方式可以帮助你达到目的——或者至少可以解释问题:

convert xc:"rgba(255,0,0,1)" xc:"rgba(0,0,0,1)" xc:"rgba(0,0,0,0)" -depth 8 -evaluate-sequence mean txt:
输出

# ImageMagick pixel enumeration: 1,1,65535,srgba
0,0: (21845,0,0,43690)  #550000AA  srgba(85,0,0,0.666667)

我看到的一个问题是,您提供的PNG图像在透明区域下是黑色的,而不是图像纹理。所以当你在我上面的命令中禁用alpha时,你会看到黑色,黑色会被平均化为最终结果。您是否在Photoshop中使用了这些相同的PNG图像,或者您使用了Photoshop PSD图像或其他一些图像,然后将其导出为PNG,这可能会在透明区域下方添加黑色。你试过在Photoshop中使用相同的PNG图像来做平均值吗


事实上,您有8位颜色(调色板)图像,其中有一种颜色(黑色)指定为透明颜色。

我看到的一个问题是,您提供的PNG图像在透明区域下有黑色,而不是图像纹理。所以当你在我上面的命令中禁用alpha时,你会看到黑色,黑色会被平均化为最终结果。您是否在Photoshop中使用了这些相同的PNG图像,或者您使用了Photoshop PSD图像或其他一些图像,然后将其导出为PNG,这可能会在透明区域下方添加黑色。你试过在Photoshop中使用相同的PNG图像来做平均值吗


事实上,您有8位彩色(调色板)图像,其中一种颜色(黑色)被指定为透明色。

您需要做的是使用alpha通道作为每个图像的加权图像。来自所有alpha通道的每个像素处的白色值的总分数将是用于平均值的权重。所以像这样的事情应该做你想做的,或者至少是接近

首先,将cd刻录到图像目录中。然后运行以下命令

convert *.png -evaluate-sequence mean \
\( -clone 0 -alpha off \) \
\( -clone 0 -alpha extract \) \
-delete 0 +swap -compose divide -composite result.png
如果每个像素上都有来自至少一个图像的一些图像纹理,这将起作用。也就是说,在给定的像素上,所有图像都不是完全黑色(透明的)


因此,这表明我的结果与您从photoshop获得的结果之间有大约0.2%的差异,您需要做的是使用alpha通道作为每个图像的加权图像。来自所有alpha通道的每个像素处的白色值的总分数将是用于平均值的权重。所以像这样的事情应该做你想做的,或者至少是接近

首先,将cd刻录到图像目录中。然后运行以下命令

convert *.png -evaluate-sequence mean \
\( -clone 0 -alpha off \) \
\( -clone 0 -alpha extract \) \
-delete 0 +swap -compose divide -composite result.png
如果每个像素上都有来自至少一个图像的一些图像纹理,这将起作用。也就是说,在给定的像素上,所有图像都不是完全黑色(透明的)


因此,这表明我的结果与你从photoshop得到的结果相差约0.2%

不确定你的意思。尝试在
-评估序列之前添加
-通道RGB
。啊!我现在可以看到图像了!它适用于ImageMagick的7.x版本。你正在运行一个旧版本<代码>识别-版本
会告诉你。我的版本是版本:ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14-通道RGB不起作用我认为该版本已经有几年了-可能是升级的时候了。我尝试了使用IM版本7的通道RGB。结果是一张黑色的图片,我不知道你的意思。尝试在
-评估序列之前添加
-通道RGB
。啊!我现在可以看到图像了!它适用于ImageMagick的7.x版本。你正在运行一个旧版本<代码>识别-版本
会告诉你。我的版本是版本:ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14-通道RGB不起作用我认为该版本已经有几年了-可能是升级的时候了。我尝试了使用IM版本7的通道RGB。结果是一个黑色图像这是我的示例:(90MB)-“mean_photoshop.png”是我想要的。这是我的示例:(90MB)-“mean_photoshop.png”是我想要的。对不起,我很困惑。首先你说它很好用。然后你说它只适用于IM 7。请澄清。它在im6和im7中都有效吗?还是只有一个。如果只有一个,你的即时通讯版本是什么?我用Ubuntu 16.04和IM6进行了测试。结果是错误的。当我在im7上使用ubuntu16.04,在im7上使用Windows时,效果很好。也许我的Ubuntu虚拟机中有什么东西被IM 6破坏了。Ubuntu 14.04 IM:ImageMagick 6.7.7-10,另一个是ImageMagick 7.0.5-5IM 6.7.7.10是很古老的——大约有200个版本