标签:python numpy scipy filter image-processing
一个简单的水平/垂直拉普拉斯掩模在内核的中心有4个(图的左侧).类似地,对角线特征敏感的拉普拉斯掩模在内核的中心有8个(图中的右侧).是什么面具使用scipy,我可以选择使用哪个?
解决方法:
一个简单的检查是声明一个零的二维数组,除了中心的一个系数设置为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.]])
因此,它是第一个正在使用的内核,但请注意符号的变化.中心系数为正,而其他系数为负.
但是,如果你真的想知道底层发生了什么,请查看该函数的文档:http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.filters.laplace.html – 这里有一个指向函数定义源的链接:
https://github.com/scipy/scipy/blob/v0.16.0/scipy/ndimage/filters.py#L396
您需要查看的相关代码如下:
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。