Ответ 1
convert <img_in> -set colorspace Gray -separate -average <img_out>
дает лучший результат для любого изображения для меня.
Как преобразовать изображение RGB (3 канала) в оттенки серого, используя метод (r + g + b)/3? Я просматриваю страницу примеров: http://www.imagemagick.org/Usage/color_mods/#grayscale но желаемый метод:
convert test.png -fx '(r+g+b)/3' gray_fx_average.png
дал мне неправильный результат - в приведенном изображении все еще есть 3 канала.
Вы можете проверить это, выполнив команду: identify -format "%[colorspace] <== %f\n" *.png
.
convert <img_in> -set colorspace Gray -separate -average <img_out>
дает лучший результат для любого изображения для меня.
Использование метода (r+g+b)/3
применит эффекты оттенков серого, но изображение останется в sRGB (что является ожидаемым поведением для этого метода). Вам нужно указать желаемый colorspace вместе с командой -fx
.
convert test.png -fx '(r+g+b)/3' -colorspace Gray gray_fx_average.png
Проверить с помощью identify -format "%[colorspace] <== %f\n" gray_fx_average.png
Gray <== gray_fx_average.png
Для пакетного преобразования изображений в оболочке Fish :
for file in *.jpg; convert -colorspace Gray $file $file; end;
Я использую это с хорошим результатом для полутоновых изображений (я конвертирую из PNG):
ls ./*.png | xargs -L1 -I {} convert {} -strip -interlace JPEG -sampling-factor 4:2:0 -gaussian-blur 0.05 -colorspace Gray -quality 20 {}.jpg
Я использую это для отсканированных черно-белых страниц, чтобы получить их в полутоновых изображениях (дополнительные аргументы убирают тени с предыдущих страниц):
ls ./*.png | xargs -L1 -I {} convert {} -strip -interlace JPEG -sampling-factor 4:2:0 -gaussian-blur 0.05 -colorspace Gray -quality 20 -density 300 -fill white -fuzz 40% +opaque "#000000" -density 300 {}.jpg
Вот несколько способов сделать это в командной строке 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
Видеть
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