1

Есть ли способ конвертировать изображение серого в цветное изображение?Изображение с серой шкалой для окраски

Вот несколько примеров JPG

  1. Photo 1
  2. Photo 2
  3. Photo 3

ImageMagick является мощным, но, кажется, не способен превращать в красочную версию.

+0

Вы хотите преобразовать в 3 канала, как cvtColor с параметром CV_GRAY2BGR? Или «восстановить» оригинальный цвет? – Miki

+0

Точно! Изображения были когда-то красочными, теперь серыми. Что бы ни было сделано для восстановления цвета, по крайней мере до некоторой степени. –

ответ

2

К сожалению, это невозможно. Изображения в оттенках серого не содержат достаточной информации для создания цветного изображения. В случаях, когда вы видите B & Изображения W/Grayscale, преобразованные в цвет, это было сделано вручную в приложении, таком как Photoshop.

Вы можете использовать imagemagick для применения фильтра, но вы не можете повторно ввести цвет. http://www.imagemagick.org/Usage/color_mods/#level-colors

+0

Достаточно чувствительный. Новое в мире изображений здесь, спасибо! –

+0

Добро пожаловать. Если это ответит на ваш вопрос, отметьте ответ как принятый. –

1

Чтобы преобразовать изображение в оттенки серого, вы просто берете среднее значение r g b в каждом пикселе и устанавливаете r g и b для этого значения. Поэтому практически невозможно преобразовать его в цвет. Ключевое слово в значительной степени, я уверен, что кто-то в конце концов придумает какой-то сложный алгоритм, который будет смотреть на пиксели вокруг него, видеть их средние значения и, возможно, сделать вывод о том, какой цвет в этой области, может быть, я не знаю. Но пока я не думаю, что это возможно сделать, к сожалению. Сожалею.

3

Вы не можете точно восстановить информацию, которая теряется путем объединения трех каналов вместе при преобразовании в цвет. Вы можете, однако, генерировать фальшивый цвет, и вы также можете сделать некоторые предположения, которые могут быть достаточно разумными для некоторых/многих изображений.

Как правило, при выполнении этих типов вы создаете LUT (Смотровая таблица) и используйте серое значение в каждом месте пикселя для поиска замещающего цвета. Итак, если мы создадим LUT, который идет от красного до зеленого до синего, темные тона вашего изображения будут отображены на красный, средний - на зеленый, а на подсветку - на синий. Давайте попробуем:

convert -size 1x1! xc:red xc:lime xc:blue +append -resize 255x1! rainbowCLUT.png 

enter image description here

Если мы теперь применить это к изображению:

convert yourImage.jpg rainbowCLUT.png -clut result.png 

enter image description here

Хорошо, теперь мы получили цвет, но это не очень реалистично , Итак, чтобы сделать это лучше, нам нужно начать делать некоторые предположения. Одно из предположений может заключаться в том, что в изображении есть что-то довольно черное (например, галстук, куртка, какие-то темные волосы или глубокая тень), другое предположение может заключаться в том, что на изображении, вероятно, есть белая подсветка (т. Е. белый фон, белые глаза), и, наконец, мы предполагаем, что есть какой-то плотный тон где-то посередине. Итак, сделаем CLUT, который выглядит так, т. Е.она идет из твердых черных через телесный тон в середине с белой подсветки:

convert -size 128x1! gradient:black-"rgb(210,160,140)" gradient:"rgb(210,160,140)"-white +append clut.png 

enter image description here

(я поставил 1 пиксель широкой красную кайму вокруг него как раз, так что вы можете увидеть его на StackOverflow Белых фон)

Теперь мы можем применить его к изображениям:

convert yourImage.jpg -normalize clut.png -clut result.png 

enter image description here enter image description here enter image description here

enter image description here enter image description here enter image description here

Обратите внимание, как я использовал -normalize, чтобы попытаться сделать изображение вписывается мое предположение, что там была сплошной черный тон изображения и твердая белой изюминка.

Этот метод является лишь попыткой воссоздать то, что больше не находится в изображении, поэтому оно не всегда будет работать. Конечно, если вы знаете дополнительную информацию о своих предметах, освещении и т. Д., Вы можете построить это в LUT.

-1

посмотреть siggraph2016_colorization Я не пробовал, но кажется интересным.

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

Colorization Архитектура:

Их модель состоит из четырех основных компонентов: низкоуровневые особенности сети, среднего уровня особенности сети, глобальной сети, особенности и сеть раскрашивания. Компоненты полностью плотно соединены и обучены в конце концов. Результатом нашей модели является цветность изображения, которое сливается с яркостью для формирования выходного изображения.

здесь образец enter image description here enter image description here