Ядра Лапласа высшего порядка в обработке изображений

В литературе по цифровой обработке изображений вы найдете примеры ядер Лапласа относительно низких порядков, обычно 3 или 5. Интересно, есть ли какой-либо общий способ построения ядер Лапласа или произвольного порядка? Ссылки и/или ссылки приветствуются.


person Francesca Y    schedule 11.06.2018    source источник
comment
Что значит порядок? Порядок аппроксимации конечных разностей?   -  person Ander Biguri    schedule 11.06.2018
comment
Или вы имеете в виду размер ядра? Если это так, ищите Лапласа Гаусса.   -  person Cris Luengo    schedule 11.06.2018
comment
@AnderBiguri Да, это то, что я имею в виду   -  person Francesca Y    schedule 11.06.2018
comment
@Cris Luengo Я полагаю, что размер ядра и порядок аппроксимации - одно и то же число. В любом случае, я имею в виду не LoG, а чистое ядро ​​Лапласа.   -  person Francesca Y    schedule 11.06.2018


Ответы (1)


оператор Лапласа определяется как сумма вторых производных по каждой из осей изображения . (То есть это след матрицы Гессе):

  • Δ I = ( ∂2/∂x2 + ∂2/∂ y2 ) I

Есть два распространенных способа дискретизации:

  1. Используйте конечные разности. Оператор производной представляет собой свертку по [1,-1] или [0.5,0,-0.5], второй оператор производной дважды применяет свертку [1,-1], что приводит к свертке с [1,-2,1].

  2. Свертка с производной ядра регуляризации. Оптимальное ядро ​​регуляризации является гауссовым, что приводит к оператору Лапласа или Гаусса. Результатом является точный Лаплас изображения, сглаженного ядром Гаусса.


Альтернативой является замена ядра регуляризации интерполирующим ядром. Мой бывший коллега опубликовал статью об этом методе:

А. Хаст, Простой дизайн фильтра для производных первого и второго порядка с помощью подхода двойной фильтрации, Pattern Письма о признании 42(1):65-71, 2014.

Он использовал двойной фильтр, но с линейными фильтрами, которые всегда можно упростить до одинарной свертки.

Идея заключается в том, чтобы взять интерполирующее ядро ​​и вычислить его производную в целочисленных ячейках. Ядро интерполяции всегда равно 1 в начале координат и 0 в других целых местах, но оно проходит через эти узловые точки, а это означает, что его производная не равна нулю в этих целых местах.

В крайнем случае возьмем идеальный интерполятор, функция sinc:

  • sinc(x) = sin(πx) / πx

Его вторая производная :

  • d2/dx2(sinc(πx)) = [ (2 - π 2x2) sin(πx) - 2πx cos(π х) ] / (πx3)

Выборка из 11 целочисленных местоположений приводит к:

[ 0.08 -0.125 0.222 -0.5 2 -3 2 -0.5 0.222 -0.125 0.08 ]

Но обратите внимание, что нормализация здесь неверна, так как мы отсекаем бесконечно длинное ядро. Таким образом, лучше выбрать более короткое ядро, такое как ядро кубического сплайна.


Второй альтернативой является вычисление оператора Лапласа через область Фурье. Это просто требует умножения на -πu2v2, на u и v частоты.

Это некоторый код MATLAB, который применяет этот фильтр к изображению единичного импульса, что приводит к изображению ядра размером 256x256:

[u,v] = meshgrid((-128:127)/256,(-128:127)/256);
Dxx = -4*(pi*u).^2;
Dyy = -4*(pi*v).^2;
L = Dxx + Dyy;
l = fftshift(ifft2(ifftshift(L)));
l = real(l);        % discard insignificant imaginary component (probably not necessary in MATLAB, but Octave leaves these values there)
l(abs(l)<1e-6) = 0; % set near-zero values to zero

l здесь тот же результат, что и выше для идеального интерполятора, сложение вертикального и горизонтального вместе и нормализация для длины 256.


Наконец, я хотел бы отметить, что оператор Лапласа очень чувствителен к шуму (значительно усиливаются высокие частоты). Обсуждаемые здесь методы имеют смысл только для данных без носа (предположительно синтетических данных?). Для любых реальных данных я настоятельно рекомендую вам использовать Лапласа или Гаусса. Это даст вам точный Лаплас сглаженного изображения. Сглаживание необходимо для предотвращения влияния шума. С небольшим шумом вы можете использовать небольшую гауссовую сигму (например, σ = 0,8). Это даст вам гораздо больше полезных результатов, чем любой другой подход.

person Cris Luengo    schedule 11.06.2018
comment
Крис, спасибо большое! Это действительно исчерпывающее объяснение! Да, в моем случае я имею дело с синтетическими изображениями и мне нужно протестировать их с разными видами чистых лапласианов. - person Francesca Y; 11.06.2018