Как работает корреляция для фильтра четного размера в этом примере? - PullRequest
1 голос
/ 29 сентября 2019

(я знаю, что такой вопрос существует, но я хотел помочь с конкретным примером)

Если линейный фильтр имеет четные размеры, как определяется «центр»?то есть в следующем сценарии:

filter = np.array([[a, b],
                   [c, d]])

и изображение было:

image = np.array([[0, 1, 0],
                  [1, 1, 1],
                  [0, 1, 0]])

что будет результатом корреляции изображения с линейным фильтром?

1 Ответ

0 голосов
/ 29 сентября 2019

Какой из элементов фильтра четного размера считается исходным, это произвольный выбор.Каждая реализация сделает свой выбор.Хотя a и d являются двумя наиболее вероятными вариантами по причинам сходства двух размеров изображения.

Например, MATLAB imfilter (который реализует корреляцию, а не свертку) делает следующее:

f = [1,2;4,8];
img = [0,1,0;1,1,1;0,1,0];
imfilter(img,f,'same')

ans =

    14    13     4
    11     7     1
     2     1     0

означает, что a является источником ядра в этом случае.Другие реализации могут сделать другой выбор.

...