用法:
cusignal.convolution.convolve.convolve2d(in1, in2, mode='full', boundary='fill', fillvalue=0)
卷积两个二维数组。将
in1
和in2
与由mode
确定的输出大小以及由boundary
和fillvalue
确定的边界条件进行卷积。参数——- in1 : 数组第一个输入。
- in2array_like
第二输入。应该具有与
in1
相同的维度数。- 模式str {‘full’, ‘valid’, ‘same’},可选
指示输出大小的字符串:
full
输出是输入的完全离散线性卷积。 (默认)
valid
输出仅包含那些不依赖零填充的元素。在‘valid’ 模式中,
in1
或in2
在每个维度上必须至少与另一个一样大。same
输出与
in1
大小相同,以 ‘full’ 输出为中心。
- 边界str {‘fill’, ‘wrap’, ‘symm’},可选
指示如何处理边界的标志:
fill
用填充值填充输入数组。 (默认)
wrap
圆形边界条件。
symm
对称边界条件。
- 填充值标量,可选
填充填充输入数组的值。默认值为 0。
- out:ndarray
一个二维数组,包含
in1
与in2
的离散线性卷积的子集。
返回:
例子:
使用复数 Scharr 算子通过 2D 卷积计算图像的梯度。 (水平算子是实数,垂直算子是虚数。)使用对称边界条件避免在图像边界处产生边。
>>> import cusignal >>> import cupy as cp >>> from scipy import misc >>> ascent = cp.asarray(misc.ascent()) >>> scharr = cp.array([[ -3-3j, 0-10j, +3 -3j], ... [-10+0j, 0+ 0j, +10 +0j], ... [ -3+3j, 0+10j, +3 +3j]]) # Gx + j*Gy >>> grad = cusignal.convolve2d(ascent, scharr, boundary='symm', mode='same') >>> import matplotlib.pyplot as plt >>> fig, (ax_orig, ax_mag, ax_ang) = plt.subplots(3, 1, figsize=(6, 15)) >>> ax_orig.imshow(cp.asnumpy(ascent), cmap='gray') >>> ax_orig.set_title('Original') >>> ax_orig.set_axis_off() >>> ax_mag.imshow(cp.asnumpy(cp.absolute(grad)), cmap='gray') >>> ax_mag.set_title('Gradient magnitude') >>> ax_mag.set_axis_off() >>> ax_ang.imshow(cp.asarray(cp.angle(grad)), cmap='hsv') >>> ax_ang.set_title('Gradient orientation') >>> ax_ang.set_axis_off() >>> fig.show()
相关用法
- Python cusignal.convolution.convolve.convolve1d3o用法及代码示例
- Python cusignal.convolution.convolve.convolve1d2o用法及代码示例
- Python cusignal.convolution.convolve.convolve用法及代码示例
- Python cusignal.convolution.convolve.choose_conv_method用法及代码示例
- Python cusignal.convolution.convolve.fftconvolve用法及代码示例
- Python cusignal.convolution.correlate.correlate用法及代码示例
- Python cusignal.windows.windows.hann用法及代码示例
- Python cusignal.windows.windows.general_gaussian用法及代码示例
- Python cusignal.waveforms.waveforms.chirp用法及代码示例
- Python cusignal.windows.windows.gaussian用法及代码示例
- Python cusignal.windows.windows.hamming用法及代码示例
- Python cusignal.windows.windows.get_window用法及代码示例
- Python cusignal.waveforms.waveforms.gausspulse用法及代码示例
- Python cusignal.peak_finding.peak_finding.argrelmin用法及代码示例
- Python cusignal.windows.windows.bartlett用法及代码示例
- Python cusignal.spectral_analysis.spectral.welch用法及代码示例
- Python cusignal.windows.windows.chebwin用法及代码示例
- Python cusignal.windows.windows.general_cosine用法及代码示例
- Python cusignal.peak_finding.peak_finding.argrelextrema用法及代码示例
- Python cusignal.filtering.resample.resample_poly用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cusignal.convolution.convolve.convolve2d。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。