Производное изображения
Производные изображения можно вычислить с помощью небольших фильтров свертки размером 2 × 2 или 3 × 3, таких как операторы Лапласа , Собеля , Робертса и Превитта . [1] Однако маска большего размера обычно дает лучшее приближение производной, и примерами таких фильтров являются Гаусса. производные [2] и фильтры Габора . [3] Иногда необходимо удалить высокочастотный шум, и это можно включить в фильтр, чтобы ядро Гаусса действовало как полосовой фильтр. [4] Использование фильтров Габора [5] в обработке изображений было мотивировано некоторым сходством с восприятием зрительной системы человека. [6]
Значение пикселя вычисляется как свертка
где является производным ядром и — значения пикселей в области изображения и — оператор, выполняющий свертку .
Производные Собеля
[ редактировать ]Производные ядра, известные как оператор Собеля, определяются следующим образом: и направления соответственно:
где здесь обозначает двумерную операцию свертки .
Этот оператор отделим и может быть разложен как произведение интерполяции и дифференцирования. ядро, так что, , для примера можно записать как
Производные Фарида и Симончелли
[ редактировать ]Фарид и Симончелли [7] [8] предлагаю использовать пару ядер: одно для интерполяции, а другое для дифференцирования (сравните с Собелом выше). Эти ядра фиксированных размеров 5 x 5 и 7 x 7 оптимизированы таким образом, чтобы преобразование Фурье аппроксимировало правильное соотношение их производных.
В коде Matlab используется так называемый 5-кратный фильтр.
k = [0.030320 0.249724 0.439911 0.249724 0.030320];
d = [0.104550 0.292315 0.000000 -0.292315 -0.104550];
d2 = [0.232905 0.002668 -0.471147 0.002668 0.232905];
И 7-кратный фильтр
k = [ 0.004711 0.069321 0.245410 0.361117 0.245410 0.069321 0.004711];
d = [ 0.018708 0.125376 0.193091 0.000000 -0.193091 -0.125376 -0.018708];
d2 = [ 0.055336 0.137778 -0.056554 -0.273118 -0.056554 0.137778 0.055336];
В качестве примера производные первого порядка можно вычислить в следующем примере с использованием Matlab для выполнения свертки.
Iu = conv2(d, k, im, 'same'); % derivative vertically (wrt Y)
Iv = conv2(k, d, im, 'same'); % derivative horizontally (wrt X)
Отмечается, что Фарид и Симончелли вывели коэффициенты первой производной, которые являются более точными по сравнению с приведенными выше. Однако последние согласуются с интерполятором второй производной и, следовательно, их лучше использовать, если ищут как первую, так и вторую производные. В противоположном случае, когда требуется только первая производная, следует использовать оптимальные коэффициенты первой производной; более подробную информацию можно найти в их статье.
Производные Hast
[ редактировать ]Производные фильтры на основе произвольных кубических сплайнов были представлены Хастом. [9] Он показал, как производные первого и второго порядка можно вычислять более правильно, используя кубические или тригонометрические сплайны. Эффективные производные фильтры должны иметь нечетную длину, чтобы производная вычислялась для центрального пикселя. Однако любой кубический фильтр устанавливается на 4 точки выборки, давая центр, расположенный между пикселями. Эта проблема решается с помощью подхода двойной фильтрации, дающего фильтры размером 7 x 7. Идея состоит в том, чтобы сначала фильтровать путем интерполяции, чтобы получить интерполированное значение между пикселями, после чего процедура повторяется с использованием производных фильтров, где теперь падает центральное значение. по центрам пикселей. Это легко доказать с помощью ассоциативного закона для свертки.
Поэтому ядро свертки для вычисления производной использование интерполирующего ядра и производное ядро становится
Также имейте в виду, что свертка коммутативна, поэтому порядок двух ядер не имеет значения, и также можно вставить производную второго порядка, а также ядро производной первого порядка. Эти ядра получены из того факта, что любая сплайновая поверхность может быть размещена в области квадратных пикселей, в отличие от поверхностей Безье . Хаст доказывает, что такую поверхность можно представить как сепарабельную свертку.
где - базовая матрица сплайна, и являются векторами, содержащими переменные и , такой как
Теперь ядра свертки можно установить на
Таким образом, производные первого порядка в центральном пикселе вычисляются как
и
Аналогично, с производными второго порядка ядра
и
Фильтр кубического сплайна оценивается в его центре. и поэтому
Аналогично производные первого порядка становятся
Аналогично производные второго порядка равны
Любой кубический фильтр может быть применен и использован для вычисления производных изображения с использованием приведенных выше уравнений, таких как Безье , Эрмита или B-сплайны .
В приведенном ниже примере в Matlab используется сплайн Catmull-Rom для вычисления производных.
M = [1,-3,3,-1; -1,4,-5,2; 0,1,0,-1; 0,0,2,0] * 0.5;
u = [0.125;0.25;0.5;1];
up = [0.75;1;1;0];
d = up'*M;
k = u'*M;
Iu = conv2(conv(d, k), conv(k, k), im,'same'); % vertical derivative (wrt Y)
Iv = conv2(conv(k, k), conv(d, k), im,'same'); % horizontal derivative (wrt X)
Другие подходы
[ редактировать ]Управляемые фильтры можно использовать для вычисления производных. [10] Более того, Савицкий и Голай [11] полиномиального сглаживания методом наименьших квадратов предложить подход , который можно использовать для вычисления производных, а Луо и др. [12] обсудим этот подход более подробно. Шарр [13] [14] [15] показывает, как создавать производные фильтры, минимизируя ошибку в области Фурье, и Яне и др. [16] более подробно обсудить принципы построения фильтров, в том числе производных фильтров.
Ссылки
[ редактировать ]- ^ Пратт, WK, 2007. Цифровая обработка изображений (4-е изд.). John Wiley & Sons, Inc., стр. 465–522.
- ^ Х. Боума, А. Виланова, Х. О. Бескос, BMTH Ромени, Ф. А. Герритсен, Быстрые и точные гауссовы производные на основе b-сплайнов , в: Материалы 1-й Международной конференции по масштабному пространству и вариационным методам в компьютерном зрении, Springer-Verlag , Берлин, Гейдельберг, 2007, стр. 406–417.
- ^ П. Морено, А. Бернардино, Дж. Сантос-Виктор, Улучшение дескриптора просеивания с помощью гладких производных фильтров, Pattern Recognition Letters 30 (2009) 18–26.
- ^ Дж. Дж. Кендеринк, Эй. Джей ван Доорн, Общие операторы соседства , IEEE Trans. Паттерн Анал. Мах. Интел. 14 (1992) 597–605.
- ^ Д. Габор, Теория коммуникации, J. Inst. Электр. англ. 93 (1946) 429–457.
- ^ Дж. Г. Даугман, Полные дискретные двумерные преобразования Габора с помощью нейронных сетей для анализа и сжатия изображений, IEEE Trans. Акуст. Речевой сигнальный процесс. 36 (1988) 1169–1179.
- ^ Х. Фарид и Э. П. Симончелли, Дифференциация дискретных многомерных сигналов , IEEE Trans Image Processing, том 13 (4), стр. 496–508, апрель 2004 г.
- ^ Х. Фарид и Э.П. Симончелли, Оптимально вращательно-эквивариантные производные по направлению ядра , Международная конференция по компьютерному анализу изображений и шаблонов, стр. 207–214, сентябрь 1997 г.
- ^ А. Хаст., «Простая конструкция фильтра для производных первого и второго порядка с использованием подхода двойной фильтрации» , Pattern Recognition Letters, Vol. 42, № 1 июнь, с. 65--71. 2014.
- ^ В.Т. Фриман, Э.Х. Адельсон, Проектирование и использование управляемых фильтров , IEEE Trans. Паттерн Анал. Мах. Интел. 13 (1991) 891–906.
- ^ А. Савицкий, MJE Golay, Сглаживание и дифференциация данных с помощью упрощенных процедур наименьших квадратов , Анал. хим. 36 (1964) 1627–1639.
- ^ Дж. Луо, К. Ин, П. Хе, Дж. Бай, Свойства цифровых дифференциаторов Савицкого – Голея, Digit. Сигнальный процесс. 15 (2005) 122–136.
- ^ Х. Шарр, Оптимальные семейства фильтров производной второго порядка для прозрачной оценки движения , в: М. Домански, Р. Стасински, М. Бартковяк (ред.), EUSIPCO 2007.
- ^ Шарр, Ханно, 2000, Диссертация (на немецком языке), Оптимальные операторы в цифровой обработке изображений .
- ^ Б. Йене, Х. Шарр и С. Коркель. Принципы проектирования фильтров. В Справочнике по компьютерному зрению и приложениям. Академик Пресс, 1999.
- ^ Б. Йене, П. Гейсслер, Х. Хауссекер (редакторы), Справочник по компьютерному зрению и приложениям с Cdrom, 1-е изд., Morgan Kaufmann Publishers Inc., Сан-Франциско, Калифорния, США, 1999, стр. 125–151. (Глава 6).
Внешние ссылки
[ редактировать ]- Derivative5.m Фарид и Симончелли: 5-Tap 1-я и 2-я дискретные производные.
- Derivative7.m Фарид и Симончелли: 7-Tap 1-я и 2-я дискретные производные
- kernel.m Hast: 1-я и 2-я дискретные производные для кубических сплайнов, сплайнов Катмулла-Рома, сплайнов Безье, B-сплайнов и тригонометрических сплайнов.