Мой оригинальный вопрос
Я прочитал, что для преобразования RGB-пикселя в RGB с серой шкалой следует использовать
r_new = g_new = b_new = r_old * 0.3 + g_old * 0.59 + b_old * 0.11
Я также читаю и понимаю, что g
имеет более высокий вес, потому что человеческий глаз более чувствителен к зеленому. Реализовав это, я увидел, что результаты были такими же, как и при настройке изображения на "оттенки серого" в редакторе изображений, таком как Gimp.
Прежде чем я прочитал это, я представил себе, что для преобразования пикселя в оттенки серого можно преобразовать его в HSL или HSV, а затем установить насыщенность в ноль (следовательно, удалить весь цвет). Однако, когда я это сделал, у меня получилось совсем другое изображение, хотя у него также не было цвета.
Как s = 0
точно отличается от "правильного" способа, который я читаю, и почему он "неверен"?
Текущие результаты, основанные на ответах и других исследованиях
Похоже, что используемые коэффициенты яркости являются предметом некоторых дебатов. Различные комбинации и алгоритмы greyscale имеют разные результаты. Ниже приведены некоторые пресеты, используемые в таких областях, как телевизионные стандарты:
- коэффициенты, определенные ITU-R BT.601 (NTSC?), равны
0.299r + 0.587g + 0.114b
- коэффициенты, определенные ITU-R BT.709 (новее),
0.2126r + 0.7152g + 0.0722b
- коэффициенты равной трети,
(1/3)(rgb)
, эквивалентныs = 0
Эта научная статья описывает различные методы оттенков серого и их результаты для различных изображений, плюс субъективный опрос 119 человек.
Однако при преобразовании изображения в оттенки серого для достижения "наилучшего" художественного эффекта почти наверняка не будет использовать эти предопределенные коэффициенты, а можно настроить вклад каждого канала для получения наилучшего результата для конкретного изображения.