imagemagick - 使用从相邻像素插值的图像中的一种颜色替换/重新绘制所有像素

标签 imagemagick

我有一个由程序生成的 GIF 图像,其中每个输出值都通过附加的调色板由其颜色表示。我需要替换一个值,即图像中的颜色与相邻像素的插值。由于我无法更改程序输出,因此我需要修改输出图像。生成的图像将以 PNG 或 GIF 格式保存。

我可以轻松地提取(屏蔽)所有需要重新绘制的像素,因为它们具有固定颜色,但是我无法找到有关如何使用来自相邻像素的插值颜色替换 imagemagick 中一个/所有像素的颜色的解决方案。
有没有办法在 imagemagick 中做到这一点?

像素的原始值与物理值成正比,因此如果可以对原始值进行插值,然后通过提供的调色板将其转换为颜色,那就太好了。

附图显示了原始(左)和在 GIMP 中手动处理的图像(右)。

Original and processed image

最佳答案

一种技术是用背景替换有问题的颜色,然后使用侵 eclipse 和扩张形态的组合来删除路径。

鉴于...

input.png

convert input.png \
        -fill white -fuzz 10% -opaque black \
        -morphology Erode Diamond \
        -morphology Dilate Diamond \
        output.png

output.png

这不是最近邻居的真正插值,而是接近的。还要注意边缘的舍入误差。

edge rounding errors

更新

或者正如 Fred 在评论中指出的那样,只需使用 -morphology Smooth Diamond而不是侵 eclipse + 扩张
convert input.png \
        -fill white -fuzz 10% -opaque black \
        -morphology Smooth Diamond \
        output.png

关于imagemagick - 使用从相邻像素插值的图像中的一种颜色替换/重新绘制所有像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56265704/

相关文章:

macos - 如何在 XQuartz 中使用 ImageMagick

image-processing - 为什么 ImageMagick 生成的 '.png' 文件比 '.jpg' 和 '.gif' 文件大得多?

bash - 如何在 bash 脚本中禁用哔声?

ruby - 使用 RMagick 读取图像时设置密度

python - 在不制作文件的情况下使用 Imagemagick?

php - 在 PHP 中使用 ImageMagick 将 PDF 转换为 JPG 会产生奇怪的字母间距

php - 将 PHP/GD 包装器移植到 Imagick 的问题

ruby-on-rails - 身份命令对 pdf 和 txt 文件失败

c# - 如何使用 C# 和 ImageMagick 将 PDF 转换为图像?

ruby-on-rails - 限制 Imagemagick 使用的空间和内存