exponenta event banner

Граничные эффекты в реальных системах с ограниченной полосой пропускания

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

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

Соглашение по упорядочению частот в фильтрах Sharlet

В частотной области сконструированы конические ножницы с ограниченной полосой пропускания, для получения более подробной информации см. Sharlet Systems. Фильтры-ножницы в shearletSystem используйте небольшую модификацию пространственной внутренней системы координат, описанной в разделе Системы координат изображений (панель инструментов обработки изображений). Если вы знакомы с правилами MATLAB для упорядочения пространственных частот в 2-D дискретном преобразовании Фурье, можно пропустить этот раздел примера.

В MATLAB 2-й Фурье преобразовывает частоты заказов в направлении 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))

Figure contains an axes. The axes contains an object of type image.

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

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

imagesc(abs(fftshift(Zdft)))

Figure contains an axes. The axes contains an object of type image.

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

Real-Value Band-Limited Sharlets и симметрия по частоте

Получите реально значимую систему sharlet с размером изображения по умолчанию 128 на 128. Визуализируйте три горизонтальных конических ножницы для коэффициентов сдвига -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')

Figure contains 3 axes. Axes 1 with title Horizontal Cone — Shear = -1 contains an object of type surface. Axes 2 with title Horizontal Cone — Shear = 0 contains an object of type surface. Axes 3 with title Horizontal Cone — Shear = 1 contains an object of type surface.

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

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')

Figure contains 3 axes. Axes 1 with title Vertical Cone — Shear = -1 contains an object of type surface. Axes 2 with title Vertical Cone — Shear = 0 contains an object of type surface. Axes 3 with title Vertical Cone — Shear = 1 contains an object of type surface.

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

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

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')

Figure contains 3 axes. Axes 1 with title Vertical Cone — Shear = -1 contains an object of type surface. Axes 2 with title Vertical Cone — Shear = 0 contains an object of type surface. Axes 3 with title Vertical Cone — Shear = 1 contains an object of type surface.

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

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

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')

Figure contains an axes. The axes with title One-Scale Shearlet Transform Filters contains 7 objects of type surface.

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

Изменение размера или прямоугольное изображение площадки

По возможности используйте квадратные изображения. Проще обеспечить идеальную симметрию в частотной характеристике «sharlet», когда отношение сторон равно единице. Это верно, даже если фильтры sharlet перекрывают край изображения. При наличии Toolbox™ обработки изображений можно использовать imresize. Прочитайте следующее изображение и отобразите его и его размер.

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

   291   240

figure
imshow(im)

Figure contains an axes. The axes contains an object of type image.

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

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

Коэффициенты sharlet являются чисто вещественными, как и ожидалось. Повторите шаги с максимальным количеством шкал, равным 2.

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

Теперь коэффициенты sharlet не являются сугубо реальными. На совершенное свойство реконструкции преобразования это не влияет.

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

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

При необходимости преобразования с двумя масштабами необходимо уменьшить размер изображения до 291-на-291.

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

Figure contains an axes. The axes contains an object of type image.

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

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

В качестве альтернативы изменению размеров можно просто установить изображение нужного размера. Используйте wextend function to zero-pad столбцы изображения на 291. Получить преобразование ширмы заполненного нулем изображения и проверить, что коэффициенты являются чисто реальными. Если вы заинтересованы только в коэффициентах анализа, вы можете отменить любое заполнение после получения преобразования sharlet. Это происходит потому, что изображения с коэффициентом sharlet имеют такое же пространственное разрешение, что и исходное изображение.

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

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

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

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

Ссылки

[1] Хяузер, Сёрен и Габриэле Штейдль. «Fast Finite Shearlet Transform: A Tutorial». arXiv препринт arXiv:1202.1773 (2014).

[2] Войгтлаендер, Феликс и Энн Пейн. «Анализ против синтеза Sparsity для α-Sharlets». arXiv препринт arXiv:1702.03559 (2017).

См. также

| |

Связанные темы