Я пытаюсь выяснить, какое ядро используется в функции лапласа skimage.filters. Я знаю, что лапласовский фильтр основан на свертке матриц, но я просто не могу понять значения, создаваемые функцией лапласа skimage.filters.
Это пример:
>>> import numpy as np
>>> import skimage
>>> from skimage.filters import laplace
>>> x = [[2,3,2],[5,3,6],[3,7,3]]
>>> x = np.array(x)
>>> x
array([[2, 3, 2],
[5, 3, 6],
[3, 7, 3]])
>>> laplace(x, ksize=3)
array([[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[ 0.00000000e+00, -9.75781955e-19, 0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
Если функция лапласа skimage.filters использует ядро / оператор
[[ 0, 1, 0],
[ 1, -4, 1],
[ 0, 1, 0]]
, то согласно свертке матрицы она должна была выдать
[[ 0, 5, -1],
[12, -9, 16],
[ 0, 19, -1]]
вместо
[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[ 0.00000000e+00, -9.75781955e-19, 0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]
Я очень смущен тем, что использует функция Laplace ядра / оператора skimage.filters, чтобы почти все выходные значения были настолько близки к нулю, например, -9.75781955e-19. Честно говоря, я не думаю, что какое-либо разумное ядро / оператор могло бы произвести такой вывод, поэтому, возможно, я просто не понимаю, как работает функция лапласа Python skimage.filters ...
Любая помощь / комментарии / предложения / идеи по этому вопросу были бы весьма признательны. Спасибо.