Я пытаюсь создать спектральное изображение с постоянным значением серой шкалы для каждой строки.Я написал какой-то фантастически медленный код, который в основном пробует 1000 различных вариаций между черным и белым для данного оттенка, и находит тот, у которого значение шкалы серого наиболее близко соответствует целевому значению, в результате получается следующее изображение:
На экране моего ноутбука (HP) наблюдается очень заметное «падение» около синего пика, когда синие пиксели в нижней части изображения выглядят намного ярче, чем соседние пурпурные и голубые пиксели.На моем втором экране (Acer, у которого намного лучший цветовой дисплей) провал меньше, но все же есть.
Я использую следующую функцию для вычисления аппроксимации оттенков серого цвета:
Math.Abs(targetGrey - (0.2989 * R + 0.5870 * G + 0.1140 * B))
Когда я преобразую изображение в оттенки серого с помощью Paint.NET, я получаю идеальный градиент от черного к белому, так что часть кода по крайней мере работает.
Итак, вопрос: это чистоартефакт качества отображения моих экранов?Или может быть улучшен вышеупомянутый алгоритм шкалы градаций серого, чтобы получить визуально более согласованный результат?
РЕДАКТИРОВАТЬ: проблема, как представляется, в основном калибровка монитора.Не, повторяю нет, проблема с кодом.