Граничные эффекты в системах Bandlimited Shearlet с действительным знаком

В этом примере показано, как краевые эффекты могут привести к shearlet коэффициентам с ненулевыми мнимыми частями даже в shearlet системе с действительным знаком. Пример также обсуждает две стратегии того, чтобы смягчить эти граничные последствия: изменение размеров или дополнение изображения и изменение количества шкал.

bandlimited адаптированный к конусу конечный shearlet преобразовывают реализованный в shearletSystem объект разрабатывается в [1] и [2]. Проблема потенциальных краевых эффектов в этой системе обсуждена подробно в [1].

Заказывающее частоту соглашение в фильтрах Shearlet

Bandlimited адаптированные к конусу shearlets создаются в частотном диапазоне, видят Системы Shearlet для большего количества детали. shearlet просачивается shearletSystem используйте небольшую модификацию пространственной внутренней системы координат, описанной в Системах координат Изображений (Image Processing Toolbox). Если вы знакомы с соглашениями MATLAB для упорядоченного расположения пространственных частот в 2D дискретном преобразовании Фурье, можно пропустить этот раздел примера.

В MATLAB 2D преобразование Фурье заказывает частоты в направлении X и Y, начинающем с (X, Y) = (0,0) в левом верхнем угле изображения. Чтобы видеть это, создайте изображение, состоящее только из DC, или означайте компонент.

imMean = 10*ones(5,5);
imMeanDFT = fft2(imMean)
imMeanDFT = 5×5

   250     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0

Пространственные частоты увеличивают вниз размерность строки (Y) и через столбцы (X) до достижения частоты Найквиста и затем уменьшаются снова. В вышеупомянутом примере в изображении нет никаких колебаний, таким образом, вся энергия сконцентрирована в imMeanDFT(1,1), который соответствует (0,0) в пространственных частотах. Теперь создайте изображение, состоящее из ненулевого среднего значения и синусоиды с низкой отрицательной частотой в обоих направления X и Y.

x = 0:15;
y = 0:15;
[X,Y] = meshgrid(x,y);
Z = 5+4*exp(2*pi*1j*(12/16*X+12/16*Y));
Zdft = fft2(Z);
imagesc(abs(Zdft))

Средний компонент находится в левом верхнем угле 2D ДПФ, и низкая отрицательная частота в направлении X и Y находится в правом нижнем углу изображения как ожидалось.

Теперь примените fftshift, который для матриц (изображения) подкачивает первый квадрант с третьим, и второй квадрант с четвертым. Это означает, что высоко отрицательные пространственные частоты в X и Y находятся теперь в левом верхнем угле. Пространственные уменьшения частоты в направлении Y, чтобы обнулить и затем увеличиваются снова до Найквиста, когда вы спускаете изображение. Точно так же пространственные частоты в X уменьшениях, когда вы проходите изображение направо до нуля и затем увеличиваетесь до Найквиста. (0,0) пространственная частотная составляющая перемещена в центр изображения.

imagesc(abs(fftshift(Zdft)))

Упорядоченное расположение частоты фильтров shearlet возвращено filterbank функция следует этому переключенному соглашению для пространственных частот в X, но соглашение инвертируется для пространственных частот в Y. Пространственные частоты в Y являются большими и положительными в левом верхнем угле, уменьшении к нулю, когда вы спускаете строки, и увеличиваются снова к большим отрицательным пространственным частотам. Соответственно, пространственные частоты Y инвертируются относительно fftshift MATLAB вывод . Это не оказывает влияния на расчет shearlet коэффициентов. Это должно быть учтено только, когда визуализация shearlet просачивается 2D частотный диапазон.

Ограниченный полосой Shearlets с действительным знаком и симметрия в частоте

Получите shearlet систему с действительным знаком с размером изображения по умолчанию 128 128. Визуализируйте три горизонтали адаптированный к конусу shearlets для сдвига факторов-1,0,1, соответственно, в самой грубой пространственной шкале (самое прекрасное пространственное разрешение частоты).

sls = shearletSystem;
[psi,scale,shear,cone] = filterbank(sls);
omegax = -1/2:1/128:1/2-1/128;
omegay = -1/2:1/128:1/2-1/128;
figure
subplot(2,2,1)
surf(omegax,flip(omegay),psi(:,:,2),'EdgeColor',"none")
view(0,90)
title('Horizontal Cone — Shear = -1')
xlabel('$\omega_x$','Interpreter',"latex",'FontSize',14)
ylabel('$\omega_y$','Interpreter',"latex","FontSize",14)
subplot(2,2,2)
surf(omegax,flip(omegay),psi(:,:,3),'EdgeColor',"none")
xlabel('$\omega_x$',"Interpreter","latex",'FontSize',14)
ylabel('$\omega_y$',"Interpreter","latex","FontSize",14)
view(0,90)
title('Horizontal Cone — Shear = 0')
subplot(2,2,3)
surf(omegax,flip(omegay),psi(:,:,4),'EdgeColor',"none")
xlabel('$\omega_x$',"Interpreter","latex","FontSize",14)
ylabel('$\omega_y$',"Interpreter","latex","FontSize",14)
view(0,90)
title('Horizontal Cone — Shear = 1')

Как ожидалось и требуемый для shearlets быть с действительным знаком в пространственной области, их преобразования Фурье с действительным знаком должны быть симметричными относительно положительных и отрицательных X и Y пространственные частоты. Повторите шаги для вертикального адаптированного к конусу shearlets в самой прекрасной пространственной шкале частоты.

figure
subplot(2,2,1)
surf(omegax,flip(omegay),psi(:,:,5),'EdgeColor',"none")
view(0,90)
title('Vertical Cone — Shear = -1')
xlabel('$\omega_x$','Interpreter',"latex",'FontSize',14)
ylabel('$\omega_y$','Interpreter',"latex","FontSize",14)
subplot(2,2,2)
surf(omegax,flip(omegay),psi(:,:,6),'EdgeColor',"none")
xlabel('$\omega_x$',"Interpreter","latex",'FontSize',14)
ylabel('$\omega_y$',"Interpreter","latex","FontSize",14)
view(0,90)
title('Vertical Cone — Shear = 0')
subplot(2,2,3)
surf(omegax,flip(omegay),psi(:,:,7),'EdgeColor',"none")
xlabel('$\omega_x$',"Interpreter","latex","FontSize",14)
ylabel('$\omega_y$',"Interpreter","latex","FontSize",14)
view(0,90)
title('Vertical Cone — Shear = 1')

В квадратном изображении легче гарантировать необходимую симметрию для всех факторов сдвига и расширений, чем в изображении, где соотношение сторон отличается от одного. Чем более явный различие между размерностями высоты и ширины изображения, тем тяжелее это становится, чтобы гарантировать необходимую симметрию. Обеспечение совершенной симметрии в 2D плоскости частоты также более трудно, когда shearlet перекрывает ребра изображения.

В shearletSystem, количество шкал определяет поддержку фильтра lowpass. Чем больше количество шкал, тем более сконцентрированный поддержка частоты фильтра lowpass (приблизительно 0,0). Для shearlet системы с действительным знаком шесть масштабируют 0 shearlets (3 горизонтали, и 3 вертикальных shearlets) заполняют поддержку частоты вокруг фильтра lowpass. Соответственно, в то время как количество сдвигов является постоянным в данной шкале, фактическая поддержка частоты shearlets не. Чтобы видеть это, создайте другую shearlet систему только с одной шкалой и постройте вертикально-коническую шкалу 0 shearlets.

sls1 = shearletSystem('NumScales',1);
psi1 = filterbank(sls1);
figure
subplot(2,2,1)
surf(omegax,flip(omegay),psi1(:,:,5),'EdgeColor',"none");
view(0,90)
title('Vertical Cone — Shear = -1')
xlabel('$\omega_x$','Interpreter',"latex",'FontSize',14)
ylabel('$\omega_y$','Interpreter',"latex","FontSize",14)
subplot(2,2,2)
surf(omegax,flip(omegay),psi1(:,:,6),'EdgeColor',"none");
xlabel('$\omega_x$',"Interpreter","latex",'FontSize',14)
ylabel('$\omega_y$',"Interpreter","latex","FontSize",14)
view(0,90)
title('Vertical Cone — Shear = 0')
subplot(2,2,3)
surf(omegax,flip(omegay),psi1(:,:,7),'EdgeColor',"none");
xlabel('$\omega_x$',"Interpreter","latex","FontSize",14)
ylabel('$\omega_y$',"Interpreter","latex","FontSize",14)
view(0,90)
title('Vertical Cone — Shear = 1')

В этой shearlet системе шкала 0 shearlets имеют всю свою энергию в самых высоких X и Y пространственные частоты. В этих ребрах 2D плоскости частоты симметрия, требуемая для shearlet коэффициентов чисто с действительным знаком, может перенести числовую нестабильность. Важный момент - то, что шкала, в которой это может произойти, зависит от количества шкал в shearlet системе, а также соотношении сторон анализируемого изображения.

Постройте частотные характеристики фильтра lowpass и шести фильтров shearlet, чтобы показать, как 2D плоскость частоты заполнена, гарантируя совершенную систему реконструкции.

figure
for ns = 1:size(psi1,3)
    surf(omegax,flip(omegay),psi1(:,:,ns),'edgecolor','none'); 
    xlabel('$\omega_x$','Interpreter',"latex","FontSize",14)
    ylabel('$\omega_y$','Interpreter',"latex",'FontSize',14)
    view(0,90);
    hold on;
end 
title('One-Scale Shearlet Transform Filters')

Только с одной шкалой в shearlet системе шесть shearlets должны заполнить любую область 2D пространства частоты, не покрытого фильтром lowpass. Соответственно, отказ в симметрии, требуемой для shearlet коэффициентов чисто с действительным знаком, может произойти, когда существует только один подарок шкалы, потому что те shearlets имеют поддержку, перекрывающую ребра. Следующий раздел обсуждает два способа принять меры против внешнего вида коэффициентов с комплексным знаком в shearlet с действительным знаком, преобразовывают.

Измените размер или заполните прямоугольные изображения

Каждый раз, когда квадрат возможного применения отображает. Легче гарантировать совершенную симметрию в shearlet частотной характеристике, когда соотношение сторон является тем. Это верно, даже когда фильтры shearlet перекрывают ребро изображения. Если у вас есть Image Processing Toolbox™, можно использовать imresize. Читайте в следующем изображении и отобразите изображение и его размер.

im = imread('pout.tif');
size(im)
ans = 1×2

   291   240

figure
imshow(im)

Изображение 291 240. Количество по умолчанию шкал в shearlet преобразовывает для этого размера изображения, 4. Получите shearlet с действительным знаком, преобразовывают для количества по умолчанию шкал. Проверяйте, имеет ли какой-либо из коэффициентов ненулевую мнимую часть.

sls = shearletSystem('ImageSize',size(im));
cfs = sheart2(sls,double(im));
max(imag(cfs(:)))
ans = 0
~any(imag(cfs(:)))
ans = logical
   1

shearlet коэффициенты чисто с действительным знаком как ожидалось. Повторите шаги с максимальным количеством шкал, равных 2.

sls = shearletSystem('ImageSize',size(im),'NumScales',2);
cfs = sheart2(sls,double(im));
max(imag(cfs(:)))
ans = 0.0021
~any(imag(cfs(:)))
ans = logical
   0

Теперь shearlet коэффициенты не чисто действительны. Совершенное свойство реконструкции преобразования не затронуто.

imrec = isheart2(sls,cfs);
max(abs(imrec(:)-double(im(:))))
ans = 1.9895e-13

Однако присутствие shearlet коэффициентов с комплексным знаком может быть нежелательным.

Одна стратегия смягчить это, если вы хотите преобразование с двумя шкалами, состоит в том, чтобы изменить размер изображения к 291 291.

imr = imresize(im,[291 291]);
imshow(imr)

sls = shearletSystem('ImageSize',size(imr),'NumScales',2);
cfs = sheart2(sls,double(imr));
max(imag(cfs(:)))
ans = 0
~any(imag(cfs(:)))
ans = logical
   1

Путем простого изменения размеров изображения, чтобы иметь соотношение сторон равняются одному, вы можете получить чисто действительный shearlet, преобразовывают с желаемым количеством шкал.

Как альтернатива изменению размеров, можно просто заполнить изображение к желаемому размеру. Используйте wextend функционируйте к нулевой клавиатуре столбцы типа image к 291. Получите shearlet преобразование дополненного нулем изображения и проверьте, что коэффициенты чисто действительны. Если вы интересуетесь только аналитическими коэффициентами, можно отбросить любое дополнение после получения shearlet, преобразовывают. Это вызвано тем, что shearlet содействующие изображения имеют то же пространственное разрешение как оригинальное изображение.

impad = wextend('ac','zpd',im,51,'r');
cfs = sheart2(sls,double(impad));
max(imag(cfs(:)))
ans = 0
~any(imag(cfs(:)))
ans = logical
   1

Настройте количество шкал

Существуют случаи, где просто увеличения или уменьшения на единицу количества шкал достаточно, чтобы устранить любые краевые эффекты в симметрии shearlet, преобразовывают. Например, с оригинальным изображением, просто постепенно увеличивая количество шкал каждый приводит только к вещественным коэффициентам.

sls = shearletSystem('ImageSize',size(im),'NumScales',3);
cfs = sheart2(sls,double(im));
max(imag(cfs(:)))
ans = 0
~any(imag(cfs(:)))
ans = logical
   1

Ссылки

[1] Häuser, Серен и Габриэле Штайдль. "Быстро Конечное Преобразование Shearlet: Пример". arXiv предварительно распечатывают arXiv:1202.1773 (2014).

[2] Voigtlaender, Феликс и боек Энн. "Анализ по сравнению с разреженностью синтеза для α- Shearlets". arXiv предварительно распечатывают arXiv:1702.03559 (2017).

Смотрите также

| |

Похожие темы