我想了解卷积的工作原理。 这是一些代码:
import numpy
from scipy import misc
data = misc.imread("path_to_a_512x512_grayscale_image.png")
data = data/255.0
masque = numpy.array([[-1,0,1],
[-2,0,0],
[-1,0,1]],numpy.double)
def my_convolution(image, masque):
hauteur,largeur = image.shape
resultat = numpy.empty((hauteur,largeur))
for y in range(1,hauteur-1):
for x in range(1,largeur-1):
pixel = 0.0
for ym in range(3):
for xm in range(3):
pixel += masque[ym,xm]*image[y-1+ym,x-1+ym]
resultat[y,x]=pixel/9.0
return resultat
my_result = my_convolution(data,masque)
plt.imshow(my_result, cmap='gray')
结果与此基本方法不完全相同。 我之前的方法给出了一张看起来更暗的图片
from scipy import signal
result2 = signal.convolve2d(data, masque)
result2 = result2[1:-1,1:-1]
plt.imshow(result2, cmap='gray')
任何人打电话给我解释这两个代码都没有给出相同的结果? 我不想知道哪种方法最快,我知道第一种方法非常难看,我只想了解。
由于