在ImageMagick命令行中将RGB转换为灰度

ego*_*or7 50 imagemagick grayscale

如何使用(r + g + b)/ 3方法将RGB图像(3个通道)转换为灰度图像?我查看了一个示例页面:http://www.imagemagick.org/Usage/color_mods/#grayscale 但是所需的方法:

convert test.png -fx '(r+g+b)/3' gray_fx_average.png
Run Code Online (Sandbox Code Playgroud)

给了我一个错误的结果 - 结果图像仍有3个频道.

您可以通过运行命令来检查:identify -format "%[colorspace] <== %f\n" *.png.

ego*_*or7 83

convert <img_in> -set colorspace Gray -separate -average <img_out> 为我提供任何图像的最佳结果.

  • 至少在较新版本的ImageMagick中,似乎`-set colorspace ...`应该是`-colorspace`. (8认同)
  • 我建议您反对这种解决方案,即使它是投票最多的解决方案。我已经在代码中实现了它,这给我带来了多个怪异的结果,最近一次是将原来只包含白色背景上的黑色和洋红色文本的文档制作为“ 2位灰度”图像(?),并将洋红色进行了转换为白色-因此难以辨认。我发现的最佳解决方案只是`convert source.jpg -colorspace Gray destination.jpg`(请参阅此处:/sf/ask/539585791/ (通过命令行)在结果和时间方面。 (4认同)
  • 谢谢 egor7 :) 即使在 imagemagick 6.5.7 中使用 `convert &lt;infile&gt; -colorspace Gray &lt;outfile&gt;` 时返回非常暗的图像的问题,egor7 命令也能很好地工作。我在 heroku (imagemagick 6.5.8) 上使用 rails+paperclip 并且得到了非常暗的图像,有很多不同的 `convert` 命令变体。这个效果很好;) 再次感谢。 (3认同)

emc*_*lle 12

使用该(r+g+b)/3方法将应用灰度效果,但图像将保留在sRGB中(这是此方法的预期行为).您需要与命令一起指定所需的颜色空间-fx.

convert test.png -fx '(r+g+b)/3' -colorspace Gray gray_fx_average.png
Run Code Online (Sandbox Code Playgroud)

验证 identify -format "%[colorspace] <== %f\n" gray_fx_average.png

Gray <== gray_fx_average.png
Run Code Online (Sandbox Code Playgroud)


Pau*_*zel 10

要在Fish shell中批量转换图像:

for file in *.jpg; convert -colorspace Gray $file $file; end;

  • 这里没有特定于 Fish shell 的内容。 (5认同)
  • mogrify是一个更紧凑的命令,用于转换一种类型的所有文件 (4认同)
  • 或在Bash shell中:`对于* .jpg中的文件;请执行-colorspace Gray $ file $ file;转换。完成` (2认同)

fmw*_*w42 9

Imagemagick 命令行中的几种方法是:

convert test.png -grayscale average gray_average.png

or

convert test.png -colorspace OHTA -channel r -separate +channel gray_average.png

or

convert test.png -intensity average -colorspace gray gray_average.png

or

convert test.png -colorspace HSI -channel blue -separate +channel gray_average.png
Run Code Online (Sandbox Code Playgroud)


https://imagemagick.org/script/command-line-options.php#grayscale https://imagemagick.org/script/command-line-options.php#intensity https://imagemagick.org/script/command- line-options.php#colorspace