Подтвердить что ты не робот

Преобразование RGB в оттенки серого в командной строке ImageMagick

Как преобразовать изображение 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.

4b9b3361

Ответ 1

convert <img_in> -set colorspace Gray -separate -average <img_out> дает лучший результат для любого изображения для меня.

Ответ 2

Использование метода (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

Ответ 3

Для пакетного преобразования изображений в оболочке Fish :

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

Ответ 4

Я использую это с хорошим результатом для полутоновых изображений (я конвертирую из 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 

Ответ 5

Вот несколько способов сделать это в командной строке 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