1 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
主要區(qū)別似乎來自如何根據(jù)參數(shù)確定輸出的 dtype。
從您發(fā)布的代碼中,我懷疑您的圖像是 dtypeuint8而內(nèi)核是int.
import numpy as np
from scipy import signal, ndimage
from scipy.misc import face
bw = face()[..., 0]
filter = np.full((3, 3), -1)
filter[1, 1] = 8
bw.dtype
# dtype('uint8')
filter.dtype
# dtype('int64')
在這種情況下,輸出 dtypes 是:
sig = signal.convolve(bw, filter, 'same')
ndi = ndimage.convolve(bw, filter)
sig.dtype
# dtype('int64')
ndi.dtype
# dtype('uint8')
除此之外和不同的邊界條件,結(jié)果實(shí)際上是相同的:
np.all(sig.astype(np.uint8)[1:-1,1:-1] == ndi[1:-1,1:-1])
# True
渲染圖像看起來大不相同,大概是因?yàn)閡int8算術(shù)溢出。
添加回答
舉報(bào)