我想将 kmeans 应用于带有 alpha mask 的图像。它应该只适用于可见的颜色。我希望能单线完成。起始图片:
天真地应用 kmeans(哎呀,全是一种颜色):
convert SpaceshipTransparency.png -kmeans 12x20 KmeansOnly.png
实验。遍历所有 alpha 选择。
-alpha remove
似乎可以工作,但它有白色背景?需要删除这个,我在 ImageMagick 文档上找到了一个三步过程,通过输出蒙版作为中间步骤:
convert SpaceshipTransparency.png -alpha Remove -kmeans 12x20 AlphaRemove.png
convert SpaceshipTransparency.png -alpha extract mask.png
convert AlphaRemove.png mask.png -alpha Off -compose CopyOpacity -composite ThreeStepProcess.png
您可以使用 Imagemagick 中的括号处理和内存中 (MPR:) 图像通过链接来组合命令。
尝试:
convert SpaceshipTransparency.png -write mpr:img +delete \
\( mpr:img -alpha Remove -kmeans 12x20 \) \
\( mpr:img -alpha extract \) \
-alpha Off -compose CopyOpacity -composite OneStepProcess.png