Я пытаюсь отрегулировать среднюю яркость изображения с помощью imagemagick.Я преобразовал размер и цвет изображений, чтобы они теперь были в оттенках серого, как показано ниже:
body_heavy_female_gray_resize
далее мне нужно настроить яркость каждого изображения, чтобы ониматч (для исследования).Целевое среднее значение яркости равно 189.
Я использовал этот код для получения значения яркости:
$ convert image -colorspace LAB -channel r -separate +channel -format "%[mean]\n" info:
, что дает значение 65535 ( из этого сообщения )
Я использовал уравнение x / 65535 = 189/255, чтобы понять, какова моя цель для изображений высокого качества: 48 573.
В настоящее время изображение выше 29319.5
Есть лиспособ отрегулировать это значение и установить его на 48573 в командной строке?
Я пытался:
convert image -colorspace LAB -channel r -evaluate set 48573
И
convert image -colorspace LAB -channel r -evaluate set "48573"
И
Я пытался изменить окончательное число на 189, 89 и .89 (в случае, если я был в неправильных измерениях) каждый раз, когда ошибка была в указанном числе.
> convert: `.89' @ error/convert.c/ConvertImageCommand/3272
Я продолжал работать над этой проблемой и корректировался на основе оставленных ниже комментариев, так что теперь я здесь:
целевое изображение:
Я запустил следующий скрипт:
target_percent_luminance=74.12
hundred=100
echo "working on ${target_pic}"
gray_mean_val=$(magick identify -verbose ${target_pic} | grep mean | awk '{print $2}' | sed -n '1p')
percent_gray_mean_val=$(echo $hundred\*$gray_mean_val/255 | bc)
echo $percent_gray_mean_val
difference=$(echo 74.12-$percent_gray_mean_val | bc)
echo $difference
magick convert ${target_pic} -modulate ${difference}% ${target_pic}_luminance.jpg
Каждая строка работала - вывод:
casey$ target_percent_luminance=74.12
casey$ hundred=100
casey$ echo "working on ${target_pic}"
working on F201_background_gray_resized.jpg
casey$ gray_mean_val=$(magick identify -verbose ${target_pic} | grep mean | awk '{print $2}' | sed -n '1p')
casey$ percent_gray_mean_val=$(echo $hundred\*$gray_mean_val/255 | bc)
casey$ echo $percent_gray_mean_val
40
casey$ difference=$(echo 74.12-$percent_gray_mean_val | bc)
casey$ echo $difference
34.12
casey$ magick convert ${target_pic} -modulate ${difference}% ${target_pic}_luminance.jpg
Но вот выходное изображение , которое кажется слишком темным.Кто-нибудь может увидеть ошибку?
Используя приведенный ниже ответ GeeMac, я написал:
casey$ input=F201_background_gray_resized.jpg
casey$ magick $input -brightness-contrast "%[fx:${lumin}-(mean*100)]" ${input}_lumintwo.jpg
и получил это изображение , которое выглядит лучше!