Удалить фон, сохранить тень

У меня есть тень на сплошном цветном фоне. Я знаю, что цвет тени черный (#000000), и точно знаю цвет фона.

Как я могу удалить цветной фон и преобразовать тень в черное изображение с альфой?

Учитывая, что я знаю, какого цвета тень, проблема должна быть точно решена для альфа-тени, которая возвращает мне исходное изображение, когда я накладываю его на цвет фона.

Используя paint.NET, Gimp или любую другую бесплатную программу. Я могу найти множество приблизительных решений, которые «работают», даже когда цвет тени неизвестен (оставляя часть цвета фона «задерживающимся» в результате), но я этого не хочу. Мне нужно точное решение, когда я знаю цвет тени и фона.

Вы пробовали GIMP Color to Alpha ?
Никакого одного шага/инструмента не будет достаточно для решения проблемы, потому что вы каким-то образом должны предоставить программе обработки изображений «информацию» о том, что цвет тени черный, а не только цвет фона. Не зная, что он не может решить для альфы, он может только сделать наилучшее предположение... которое не совсем верно. Вот чего мне не хватает, так это способа дать ему эту информацию.
В этом случае вам нужно было создать свою тень как отдельный слой, чтобы вам не пришлось ее извлекать. Вы пытаетесь отредактировать существующее плоское изображение без слоев, к сожалению, придется использовать приближение цвета к альфа-каналу или аналогичные методы. Удаление фона с плоских изображений всегда является приблизительным и потребует использования какой-либо альфа-маски, независимо от того, какое программное обеспечение вы используете.
«Что я должен был сделать» совершенно неуместно и бесполезно. И, кроме того, это абсолютно не «должно быть», я буквально знаю формулу, которую я мог бы использовать для реализации этого... есть четыре переменных, и я знаю три из них, есть точное решение. Это просто проблема поиска инструмента/процесса, который ее решает.

Ответы (1)

Я не очень хорошо знаю GIMP, но метод должен быть таким же, как в Photoshop. (Все скриншоты из фотошопа.)

Вам нужно использовать режим наложения разделения (который, по-видимому, называется режимом слоя в GIMP).

  • Мы начинаем с изображения в градациях серого, к которому я умножил цветной фон.

    Изображение в оттенках серого. Цветной фон.

  • Создайте новый слой поверх изображения, залейте фоновым цветом изображения.

  • Установите режим наложения/режим слоя цветного слоя, чтобы разделить .

    После разделения с цветом. Разделите режим наложения.

    Это удаляет цвет с изображения и оставляет его с белым фоном.

  • Сгладьте изображение.

  • В фотошопе вроде работает отлично, а в GIMP самый светлый цвет становится (254, 254, 254)! Поэтому, если вы используете GIMP, вам нужно использовать что-то вроде Уровней , чтобы понизить белую точку на 1.

  • Инвертируйте изображение.

  • Используйте перевернутое изображение в качестве маски слоя для полностью черного слоя.

    Изображение с прозрачностью. Перевернутое изображение в качестве маски слоя.

  • Теперь у вас есть черное изображение с прозрачным фоном.

Это то, что я имею в виду, это еще одно приблизительное решение. Результат явно более полупрозрачный, чем должен быть по сравнению с исходным изображением, то есть, если вы наложите его обратно на исходный цвет фона, он не будет выглядеть так же, как оригинал. Что я хочу сделать, так это разделить изображение на две части: цвет фона и наложение тени, которые при рекомбинации создают ТОЧНО исходное изображение. Я знаю, что это математически возможно, я мог бы написать программу на C, чтобы сделать это, я хочу знать, как это сделать в программе редактирования изображений.
@Марк, наверное, ты прав. С этим точным цветом фона (RGB 130 170 160) он отлично работал в PS - я сравнил с исходным изображением. Но, похоже, это не работает со всеми цветами фона...