M03 · Математика рядом
Производные и векторные поля
Выбранная граница становится измеряемым изменением; знак и направление остаются видимыми.
Здесь — математическая опора для глав учебника: сначала маленький расчёт, затем интерактивный пример и точные определения.
Посчитаем на маленьком примере
Значения слева и справа — 1 и 5. Как оценить изменение в средней клетке?
- Между отсчётами два шага
Это изменение на одну клетку, а не яркость. При перевороте ряда знак станет отрицательным. Если расстояние между соседними измерениями h, делитель равен 2h.
Разность показывает изменение, а не саму яркость
Для отсчётов 0,2; 0,2; 0,8 прямая разность справа от второго равна 0,6. При шаге сетки h производная оценивается как (I[x+1]−I[x])/h. Обратная разность смотрит влево, центральная использует обе стороны. Без h результат имеет единицы «изменение на пиксель», а не на метр.
На гладкой функции центральная формула имеет погрешность порядка h², односторонняя — порядка h при достаточной гладкости. У разрыва эти оценки гладкости не применимы. Производные усиливают высокочастотный шум, поэтому масштаб предварительного сглаживания должен быть указан.
Выбери границу: значение слева и справа отличается, поэтому горизонтальная разность велика. В однородном участке она близка к нулю. Поменяй направление производной и сравни ту же точку. Дивергенция, гессиан и сопряжённость ниже остаются справочными понятиями, не скрытыми режимами этого примера.
Где яркость растёт, а где убывает
Нажми на переход от тёмного к светлому, затем на обратный. Линия отмечает сечение, а график показывает знак изменения. Резкость сравни отдельно ниже.
Точные значения — в разборе точки
Серая шкала 0…1: от чёрного к белому.
- Выводим производную по x
Точные значения — в разборе точки
Синий − · белый 0 · красный +; шкала -2…2
Разобрать выбранную точку
Что показывает график
Линия на изображении отмечает эту же строку. Нажми выше или ниже, чтобы перенести сечение; сравнивай значения при одном столбце.
- Исходное
- Результат
- Выбранный столбец: 8
На ровном участке производная близка к нулю. При усилении деталей ищи выбросы рядом с границей, а не новые измеренные детали.
Параметры и подробности
Sobel: делитель 8, повтор границы. Резкость = исходное + сила × (исходное − сглаженное); отрицательные значения сохранены.
Выбери точку на изображении. Стрелки перемещают её; Home и End — к краям строки. Просмотр не изменяет вычисление.
Для изменения примера нужен JavaScript и Canvas. Рассчитанные изображения доступны выше.
Градиент — направление самого быстрого роста
Определения и подробности
Градиент содержит две компоненты. Его длина показывает силу изменения, направление — куда яркость растёт. У края линия границы приблизительно перпендикулярна градиенту. При нулевом градиенте направление не определено: не надо рисовать осмысленную стрелку из atan2(0,0).
Sobel и Scharr — дискретные оценки компонент с собственным сглаживанием и масштабом. Нормировка меняет числовой порог, даже если рисунок после автоматического контраста выглядит одинаково. Для углов и текстур полезно сравнивать обе компоненты, а не только модуль.
Дивергенция, лапласиан и кривизна
Определения и подробности
Дивергенция измеряет локальный исходящий поток векторного поля. Лапласиан сравнивает значение с окружением. На квадратной сетке с шагом h его пятиузловая формула — .
Гессиан — матрица вторых частных производных. При существующих непрерывных вторых производных смешанные производные совпадают. Его собственные направления описывают локальную кривизну скалярного поля, но не автоматически форму предмета. Интеграл суммирует вклад по области; на сетке это взвешенная сумма площадей клеток.
Согласованные производные нужны оптимизации
Определения и подробности
В непрерывной модели интегрирование по частям связывает градиент и дивергенцию с граничным членом. При периодических или подходящих нулевых потоках градиент и минус дивергенция сопряжены. На сетке нужно выбрать согласованную пару операторов и те же границы: произвольные разные stencil могут нарушить вычисляемый градиент энергии.
Это особенно важно в TV, диффузии и обратных задачах. Проверка на маленьких массивах ловит ошибку знака или границы раньше, чем её скрывает красивая картинка.