LINUX.ORG.RU

imagemagick, фильтр по яркости

 


1

1

Здравствуйте.

Захотел командной строчкой сделать из «фото_луны.jpg» png-шку с прозрачным фоном. Из всего фото луны должна остаться только её освещённая часть, всё остальное загнать в прозрачность. Грызя все эти blur, crop, despeckle, и dither опасаюсь рехнуться и неасиливаю, так может какая добрая душа подскажет, как вот так отфильтровать контент по гамме командной строчкой?

Спасибо за отклики и внимание.

★★★★

convert moon.jpg \
    \( +clone -colorspace gray -brightness-contrast 65,85 \
       -resize 200% -morphology erode disk:1 -resize 50% \
       -blur 1x1 -alpha shape \) \
    -compose copyalpha -composite moon_alpha.png

До: https://i.imgur.com/n4Sopgr.jpg

После: https://i.imgur.com/qhfV6eY.png

Можно попробовать заменить -brightness-contrast на ещё что-то. Например, в простом случае, это может быть -threshold. -morphology имеет разрешение в 1 пиксел, поэтому, чтобы свернуть края на меньшее значение, приходится резсайзить картинку. Все вместе значения яркости-контраста, erode и blur будут зависеть от характера каждого отдельного изображения. А где-то этот метод и вовсе может не сработать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.