Сведения о вопросе

Математик

10:02, 4th August, 2020

Теги

colors   rgb   monochrome    

RGB для монохромного преобразования

Просмотров: 505   Ответов: 6

Как преобразовать значения RGB пикселя в одно монохромное значение?



  Сведения об ответе

piter

21:15, 18th August, 2020

Я нашел одно возможное решение в цвете FAQ . Компонент яркости Y (от системы CIE XYZ ) захватывает то, что больше всего воспринимается людьми как цвет в одном канале. Итак, используйте эти коэффициенты:

mono = (0.2125 * color.r) + (0.7154 * color.g) + (0.0721 * color.b);


  Сведения об ответе

VERSUION

16:37, 24th August, 2020

В этой статье MSDN используется (0.299 * color.R + 0.587 * color.G + 0.114 * color.B);

В этой статье Википедии используется (0.3* color.R + 0.59 * color.G + 0.11 * color.B);


  Сведения об ответе

lool

10:41, 22nd August, 2020

Эта недавняя научная статья сравнивает state-of-the-art в преобразовании цветных фотографий в оттенки серого, включая простую формулу яркости и более сложные методы.


  Сведения об ответе

прога

11:01, 16th August, 2020

Это зависит от того, каковы ваши мотивы. Если вы просто хотите превратить произвольное изображение в оттенки серого и заставить его выглядеть довольно хорошо, то преобразования в других ответах на этот вопрос подойдут.

Если вы преобразуете цветные фотографии в черно-белые, процесс может быть как очень сложным, так и субъективным, требующим определенной настройки для каждого изображения. Чтобы получить представление о том, что может быть задействовано, взгляните на этот учебник из Adobe для Photoshop.

Репликация этого в коде была бы довольно сложной и все равно потребовала бы вмешательства пользователя, чтобы получить результирующее изображение эстетически "perfect" (что бы это ни значило!).


  Сведения об ответе

ЯЯ__4

18:45, 17th August, 2020

Как уже упоминалось, перевод в оттенки серого (обратите внимание, что монохроматические изображения не обязательно должны быть в оттенках серого) из RGB-триплета зависит от вкуса.

Например, вы можете обмануть, извлечь только синий компонент, просто выбросив красный и зеленый компоненты и скопировав вместо них значение синего. Другим простым и в целом приемлемым решением было бы взять среднее значение RGB-триплета пикселя и использовать это значение во всех трех компонентах.

Тот факт, что существует значительный рынок для профессиональных и not-very-cheap-at-all-no-sirree grayscale/monochrome converter плагинов для Photoshop только, говорит о том, что преобразование так же просто или сложно, как вы хотите.


  Сведения об ответе

ЯЯ__4

17:11, 6th August, 2020

Логика преобразования любого изображения на основе RGB в монохромный can-это не тривиальное линейное преобразование. На мой взгляд, такую проблему лучше решать с помощью "Color Segmentation" методов. Вы можете достичь "Color segmentation" с помощью кластеризации k-means.

Смотрите пример ссылки с сайта MathWorks.

https://www.mathworks.com/examples/image/mw/images-ex71219044-color-based-segmentation-using-k-means-clustering

Оригинальная цветная картинка.

Picture with colours

После преобразования в монохромный с помощью K-средних кластеризация Picture after converting to monochrome using k-means clustering

Как это работает?

Соберите все значения пикселей из всего изображения. Из изображения, которое имеет ширину W пикселей и высоту H пикселей, вы получите значения цвета W *H. Теперь, используя алгоритм k-means, создайте 2 кластера (или ячейки) и бросьте цвета в соответствующий "bins". 2 кластера представляют ваши черно-белые оттенки.

Youtube видео, демонстрирующее сегментацию изображения с помощью k-means? https://www.youtube.com/watch?в=yR7k19YBqiw

Проблемы с этим методом

Алгоритм кластеризации k-средних чувствителен к выбросам. Несколько случайных пикселей с цветом, расстояние которого RGB находится далеко от rest толпы, могут легко исказить центроиды, чтобы получить неожиданные результаты.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться