python中scipy.ndimage.filter_python – scipy.ndimage.filter.laplace()中使用的拉普拉斯掩码/内核是什么?...

一个简单的水平/垂直拉普拉斯掩模在内核的中心有4个(图的左侧).类似地,对角线特征敏感的拉普拉斯掩模在内核的中心有8个(图中的右侧).是什么面具使用scipy,我可以选择使用哪个?

509dc6b60864788b63ac89c8cab3e016.png

解决方法:

一个简单的检查是声明一个零的二维数组,除了中心的一个系数设置为1,然后将拉普拉斯函数应用于它.具有过滤功能的属性是,如果您提交带有单个1的图像,则输出将是实际过滤器本身位于1所在位置 – 查找impulse response …或更具体地说,Point Spread Function.

如果你这样做,那么在你运行laplace方法后你会看到它的样子:

In [13]: import numpy as np

In [14]: import scipy.ndimage.filters

In [15]: A = np.zeros((5,5))

In [16]: A[2,2] = 1

In [17]: B = scipy.ndimage.filters.laplace(A)

In [18]: A

Out[18]:

array([[ 0., 0., 0., 0., 0.],

[ 0., 0., 0., 0., 0.],

[ 0., 0., 1., 0., 0.],

[ 0., 0., 0., 0., 0.],

[ 0., 0., 0., 0., 0.]])

In [19]: B

Out[19]:

array([[ 0., 0., 0., 0., 0.],

[ 0., 0., 1., 0., 0.],

[ 0., 1., -4., 1., 0.],

[ 0., 0., 1., 0., 0.],

[ 0., 0., 0., 0., 0.]])

因此,它是第一个正在使用的内核,但请注意符号的变化.中心系数为正,而其他系数为负.

您需要查看的相关代码如下:

def derivative2(input, axis, output, mode, cval):

return correlate1d(input, [1, -2, 1], axis, output, mode, cval, 0)

return generic_laplace(input, derivative2, output, mode, cval)

基本上,[1,-2,1]的1D内核独立地应用于每个维度,如correlate1d函数所做的那样……所以首先是行,然后是列.这实际上会计算您在问题中看到的第一个蒙版.

标签:python,numpy,scipy,filter,image-processing

来源: https://codeday.me/bug/20190722/1504091.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值