Самый простой способ - просто сбросить насыщенность до нуля. Это пиявка всех цветов из изображения. Однако это может быть не тот эффект, который вы ищете.
Другой метод заключается в добавлении результатов разных цветовых каналов в различных комбинациях друг к другу, чтобы получить одно значение интенсивности в каждом местоположении пикселя.
Так, скажем, например, вы могли бы сделать это:
R + G + B = I
Где R - интенсивность красного в данном месте, G - зеленый, B - синий, а I - ваша последняя интенсивность.
Затем вы можете взвесить их:
R r1 + G g1 + b * b1 = I
Где эти r1, g1 и b1 являются константами для каждого канала.
Вы также можете преобразовать их, скажем, применяя выравнивание гистограммы к каждому каналу до объединения:
T1 (R) * r1 + T2 (G) * g1 + T3 (B) * b1 = I
Где ваш T1 является передаточной функцией (отображение одного набора значений пикселей в другой). Простые передаточные функции - это такие вещи, как выравнивание гистограммы, регулировка контрастности и другие однопиксельные модификации.
Это все с математической точки зрения, т. Е. Вы вносите изменения в программу или что-то вроде Matlab. Вы также можете увидеть, как передаточные функции могут становиться все более сложными, комбинируя информацию о соседях и тому подобное.
Если вы не хотите идти по этому пути (а я, во всяком случае, не часто), есть готовые решения в Lightroom или Nik. Вот хорошая обзорная статья о последних двух, и эта статья и эта статья также являются хорошими учебниками.