首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >scipy.signal.convolve2d计算的是什么?

scipy.signal.convolve2d计算的是什么?
EN

Stack Overflow用户
提问于 2017-01-12 20:23:23
回答 1查看 17.8K关注 0票数 9

我现在对下面的输出感到有点困惑

#!/usr/bin/env python

import scipy.signal

image = [[1, 2, 3, 4, 5, 6, 7],
         [8, 9, 10, 11, 12, 13, 14],
         [15, 16, 17, 18, 19, 20, 21],
         [22, 23, 24, 25, 26, 27, 28],
         [29, 30, 31, 32, 33, 34, 35],
         [36, 37, 38, 39, 40, 41, 42],
         [43, 44, 45, 46, 47, 48, 49]]

filter_kernel = [[-1, 1, -1],
                 [-2, 3, 1],
                 [2, -6, 0]]

res = scipy.signal.convolve2d(image, filter_kernel,
                              mode='same', boundary='fill', fillvalue=0)
print(res)

确实是

[[  -2   -8   -7   -6   -5   -4   28]
 [   3   -7  -10  -13  -16  -19   14]
 [ -18  -28  -31  -34  -37  -40    0]
 [ -39  -49  -52  -55  -58  -61  -14]
 [ -60  -70  -73  -76  -79  -82  -28]
 [ -81  -91  -94  -97 -100 -103  -42]
 [-101  -61  -63  -65  -67  -69  -57]]

我期望左上角的元素是3*1 + 1*2 + (-6) *8 + 0*9 = -43 (省略填充的零)。

我认为这会将R^{7x7}中的矩阵图像扩展到R^{9x9},方法是在左侧/右侧和顶部/底部添加一个0。然后,我认为可以通过在image上“滑动”来计算filter_kernel。在每个位置,图像中的数字与内核中的数字逐点相乘。这九个产品被汇总并写入res

然而,它是-2。显然,会发生一些不同的事情。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41613155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档