Во время изучения градиентных фильтров у меня возникало множество вопросов. Почему фильтр сделан именно так, а не иначе? В чём разница между разными фильтрами? В данной статье я собрал найденные мной ответы на эти вопросы. Предполагается, что читатель знаком с формулами на уровне чтения википедии, и поэтому я не объясняю, как перемножать матрицу коэффициентов фильтра с интенсивностями пикселов, просто чтобы не раздувать текст.
Важно: для индексации пикселов используется индексация, принятая в сообществе linux, когда пикселы нумеруются от левого верхнего угла изображения, ибо это правильно)
Пикселизация изображения
Теория цифровой обработки изображений в некотором смысле довольно сложна, потому что объектом изучения является точечная интенсивность света как функция координат изображения
, которая вполне может быть гладкой функцией, разложимой в ряд Тейлора, но у нас никогда нет значений этой функции. При начальном знакомстве с теорией можно обмануть себя и сказать, что мол мы всё же знаем значения функции, но только на дискретном наборе точек (пикселов). Но если остаться на этом уровне понимания, то смысла в формулах Собеля нет (центральные разности должны были бы дать лучший результат).
Итак, значение пиксела
-- это НЕ значение функции
в некоей дискретной точке
, а среднее значение интенсивности, взятое по площади пиксела: