Как и в названии, я ищу алгоритм для создания эффекта, используемого в фильме Sin City, который выбирает цвет из изображения и обесцветяет остальную часть.Sin city effect
ответ
В теории, это должно быть достаточно просто:
- Преобразовать каждый пиксель HSL.
- Если оттенок находится в заданном диапазоне, увеличьте насыщенность на определенную величину.
- В противном случае установите насыщенность на 0.
- Преобразуйте значение HSL в RGB и перейдите к следующему пикселю.
Вам нужно будет поэкспериментировать, чтобы выяснить, какой большой диапазон оттенков вам нужен, и сколько увеличить насыщенность.
Это, вероятно, не даст вам идеальных результатов. Даже если на входной сцене уже был парень в зелени и все остальное в явно не-зеленых цветах (на которые вы не могли рассчитывать, если бы вы специально не поставили его таким образом), вы, вероятно, получите несколько менее идеальных результатов вокруг границы между «зеленым парнем» и «фоном». С учетом того, какие фильмы должны работать с фильмами, я подозреваю, что там было сделано много ручного прикосновения. Но вы можете приблизиться и попытаться настроить там.
* Если оттенок находится в заданном диапазоне * Они могли бы обработать это условное выражение как изображение и удалить его. – oldboy
* «Я подозреваю, что они сделали много ручного прикосновения» * - Возможно, это был * все * ручной прикосновение. Новые программы редактирования видео (например, After Effects) могут выделять и отслеживать движущиеся объекты, хотя ручной настройку по-прежнему требуется. Когда вы выделите объект, вы можете делать все, что хотите, с ним ... например, увеличить насыщенность, сохраняя при этом остальную часть кадра. Я очень сомневаюсь, что они использовали для этого какой-то специальный алгоритм. –
Преобразование изображения в пространство HSV и установка насыщения в ноль для всех оттенков, кроме тех, которые вы хотите сохранить.
+1 для интересного вопроса. Является ли это ссылкой на поп-культуру, которая заставляет его приближать приманку для голосования? – krock