Скажу сразу, я не слышал об использовании матрицы 4х4 для яркости или контрастности. Я думаю, что эти операции выполняются на гистограмме изображения, а не на основе локального пикселя.
Скажем, например, что ваше изображение имеет значения от 0 до 200, и вы хотите сделать его ярче. Затем вы можете добавить значения к изображению, и то, что показано на экране, будет ярче. Если вы хотите улучшить контраст на этом изображении, вы должны выполнить умножение, например:
(image_value - original_min)/(original_max - original_min) * (new_max - new_min) + new_min
если вы хотите, чтобы ваш новый минимум был равен 0, а новый максимум был равен 255, то это уравнение соответствующим образом увеличит контраст. Original_min и original_max не обязательно должны быть фактическими минимальными и максимальными значениями всего изображения, они могут быть минимальными и максимальными значениями подраздела изображения, если вы хотите увеличить конкретную область и не возражаете против отсечения значений выше или ниже вашего new_min / new_max.
Полагаю, если вы уже знаете свой диапазон и т. Д., Вы можете включить эту формулу в матрицу 4x4 для достижения своей цели, но только после того, как вы сделали проход, чтобы найти минимальное и максимальное значения исходного изображения.
Я также хотел бы отсоединить отображение вашего изображения от данных вашего изображения; Вышеуказанные операции разрушительны, так как вы потеряете информацию, поэтому вы хотите сохранить оригинал и показать копию.