Есть ли способ конвертировать изображение серого в цветное изображение?Изображение с серой шкалой для окраски
Вот несколько примеров JPG
ImageMagick является мощным, но, кажется, не способен превращать в красочную версию.
Есть ли способ конвертировать изображение серого в цветное изображение?Изображение с серой шкалой для окраски
Вот несколько примеров JPG
ImageMagick является мощным, но, кажется, не способен превращать в красочную версию.
К сожалению, это невозможно. Изображения в оттенках серого не содержат достаточной информации для создания цветного изображения. В случаях, когда вы видите B & Изображения W/Grayscale, преобразованные в цвет, это было сделано вручную в приложении, таком как Photoshop.
Вы можете использовать imagemagick для применения фильтра, но вы не можете повторно ввести цвет. http://www.imagemagick.org/Usage/color_mods/#level-colors
Достаточно чувствительный. Новое в мире изображений здесь, спасибо! –
Добро пожаловать. Если это ответит на ваш вопрос, отметьте ответ как принятый. –
Чтобы преобразовать изображение в оттенки серого, вы просто берете среднее значение r g b в каждом пикселе и устанавливаете r g и b для этого значения. Поэтому практически невозможно преобразовать его в цвет. Ключевое слово в значительной степени, я уверен, что кто-то в конце концов придумает какой-то сложный алгоритм, который будет смотреть на пиксели вокруг него, видеть их средние значения и, возможно, сделать вывод о том, какой цвет в этой области, может быть, я не знаю. Но пока я не думаю, что это возможно сделать, к сожалению. Сожалею.
Вы не можете точно восстановить информацию, которая теряется путем объединения трех каналов вместе при преобразовании в цвет. Вы можете, однако, генерировать фальшивый цвет, и вы также можете сделать некоторые предположения, которые могут быть достаточно разумными для некоторых/многих изображений.
Как правило, при выполнении этих типов вы создаете LUT (Смотровая таблица) и используйте серое значение в каждом месте пикселя для поиска замещающего цвета. Итак, если мы создадим LUT, который идет от красного до зеленого до синего, темные тона вашего изображения будут отображены на красный, средний - на зеленый, а на подсветку - на синий. Давайте попробуем:
convert -size 1x1! xc:red xc:lime xc:blue +append -resize 255x1! rainbowCLUT.png
Если мы теперь применить это к изображению:
convert yourImage.jpg rainbowCLUT.png -clut result.png
Хорошо, теперь мы получили цвет, но это не очень реалистично , Итак, чтобы сделать это лучше, нам нужно начать делать некоторые предположения. Одно из предположений может заключаться в том, что в изображении есть что-то довольно черное (например, галстук, куртка, какие-то темные волосы или глубокая тень), другое предположение может заключаться в том, что на изображении, вероятно, есть белая подсветка (т. Е. белый фон, белые глаза), и, наконец, мы предполагаем, что есть какой-то плотный тон где-то посередине. Итак, сделаем CLUT, который выглядит так, т. Е.она идет из твердых черных через телесный тон в середине с белой подсветки:
convert -size 128x1! gradient:black-"rgb(210,160,140)" gradient:"rgb(210,160,140)"-white +append clut.png
(я поставил 1 пиксель широкой красную кайму вокруг него как раз, так что вы можете увидеть его на StackOverflow Белых фон)
Теперь мы можем применить его к изображениям:
convert yourImage.jpg -normalize clut.png -clut result.png
Обратите внимание, как я использовал -normalize
, чтобы попытаться сделать изображение вписывается мое предположение, что там была сплошной черный тон изображения и твердая белой изюминка.
Этот метод является лишь попыткой воссоздать то, что больше не находится в изображении, поэтому оно не всегда будет работать. Конечно, если вы знаете дополнительную информацию о своих предметах, освещении и т. Д., Вы можете построить это в LUT.
посмотреть siggraph2016_colorization Я не пробовал, но кажется интересным.
Они представляют собой новый метод автоматического раскрашивания изображений в оттенках серого, который сочетает в себе как глобальные приоритеты, так и функции локального изображения.
Colorization Архитектура:
Их модель состоит из четырех основных компонентов: низкоуровневые особенности сети, среднего уровня особенности сети, глобальной сети, особенности и сеть раскрашивания. Компоненты полностью плотно соединены и обучены в конце концов. Результатом нашей модели является цветность изображения, которое сливается с яркостью для формирования выходного изображения.
Вы хотите преобразовать в 3 канала, как cvtColor с параметром CV_GRAY2BGR? Или «восстановить» оригинальный цвет? – Miki
Точно! Изображения были когда-то красочными, теперь серыми. Что бы ни было сделано для восстановления цвета, по крайней мере до некоторой степени. –