Вывод моей функции отличается от вывода conv2()

Ниже приведен код, который я написал для свертки изображения с маской Собеля в направлении x. Функция вводит изображение в оттенках серого вместе с ядром для свертки. Однако результат, который я получаю, отличается от результата, который я получаю от встроенной функции conv2(). Почему это? Что я делаю не так?

Вот вывод моей функции:

введите здесь описание изображения

Вот вывод conv2():

введите здесь описание изображения


person Amir    schedule 09.04.2014    source источник


Ответы (1)


Вы вычисляете корреляцию. Двумерная свертка — это поворот ядра на 180 градусов (переворот обеих осей).

h = rot90(h,2);

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

person chappjc    schedule 09.04.2014