exponenta event banner

imfilter Параметры заполнения границ

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

Когда значения ядра выходят за пределы изображения

imfilter функция обычно заполняет эти пикселы изображения вне края, предполагая, что они 0. Это называется заполнением нуля и показано на следующем рисунке.

Нулевое заполнение внешних пикселей

При фильтрации изображения нулевое заполнение может привести к темной полосе вокруг края изображения, как показано в этом примере.

I = imread('eight.tif');
h = ones(5,5) / 25;
I2 = imfilter(I,h);
imshow(I), title('Original Image');
figure, imshow(I2), title('Filtered Image with Black Border')

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

Реплицированные граничные пикселы

Для фильтрации с помощью репликации границ передайте дополнительный необязательный аргумент 'replicate' кому imfilter.

I3 = imfilter(I,h,'replicate');
figure, imshow(I3); 
title('Filtered Image with Border Replication')

imfilter функция поддерживает другие параметры заполнения границ, такие как 'circular' и 'symmetric'. См. справочную страницу для imfilter для получения подробной информации.

См. также

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