My understanding is that a symmetrical kernel is its own self-adjoint. For example, if we had the following kernel:
kernel = np.array([[-1, -1, -1],
[-1, 8, -1],
[-1, -1, -1]])
And applied a convolution with that filter:
from skimage import data
image = data.camera()
conv_result_1 = signal.fftconvolve(image, kernel, mode='same')
Then applied that same kernel again, it would undo the operation:
conv_result_2 = signal.fftconvolve(grad, kernel, mode='same')
But it doesn't undo the operation! What am I missing here?