Я не эксперт в области компьютерной графики, но я предполагаю, что вы хотите перебрать каждый пиксель изображения, которое вы хотите смешать, центрирование colorMatrix
на каждый пикселе, вычислить в среднем, используя окружающие пиксели, с которыми ваша матрица контактирует, затем примените это среднее значение к вашему пикселю. Очевидно, вам нужно будет обработать крайние пиксели.
Пример: Предположим, что у вас есть 5x4 изображение со значениями пикселей любит так
1 2 3 4 5
1 1000 1000 1000 1000 1000
2 1000 1000 1000 1000 1000
3 1000 1000 1000 1000 1000
4 1000 1000 1000 1000 1000
(1) Принимая пиксель в положении (3,3)
и применяя вашу матрицу преобразования - т.е. умножения пикселя (i,j)
изображения с позиции матрицы (i,j)
- мы получить
1 2 3 4 5
1 393 769 189 0 0
2 349 686 168 0 0
3 272 534 131 0 0
4 0 0 0 1000 0
(2) Теперь усреднением этой трансформации - то есть добавить все числа и разделить на 20 - получаем 224,5 или около 225. Таким образом, наши вновь трансформируются изображение будет выглядеть так:
1 2 3 4 5
1 1000 1000 1000 1000 1000
2 1000 1000 1000 1000 1000
3 1000 1000 225 1000 1000
4 1000 1000 1000 1000 1000
Чтобы получить полную композицию вычитания, сделайте это для каждого пикселя.
EDIT: на самом деле я думаю, что вышеизложенное может быть размытием по Гауссу.
Я не думаю, что у вас есть правильная идея о матрицах. Чтобы узнать больше, проверьте [this] (http://math.stackexchange.com/a/532974) ответ. – RobCo