python培训之如何在二维图像上进行卷积

发布时间:2023-02-21 09:33:01 人气:65 作者:多测师

  python如何在二维图像上进行卷积

  说明

  1、对于二维矩阵,卷积时卷积核由左向右、由上向下滑动,对应位置要求加权和。

  2、一般图片为RGB三通道,需要每个通道卷积,每个通道都是二维矩阵。灰度图只有一个通道,直接卷起即可。

python培训之如何在二维图像上进行卷积

  实例

  def my_conv2d(inputs: np.ndarray, kernel: np.ndarray):

  # 计算需要填充的行列数目,这里假定mode为“same”

  # 一般卷积核的hw都是奇数,这里实现方式也是基于奇数尺寸的卷积核

  h, w = inputs.shape

  kernel = kernel[::-1, ...][..., ::-1] # 卷积的定义,必须旋转180度

  h1, w1 = kernel.shape

  h_pad = (h1 - 1) // 2

  w_pad = (w1 - 1) // 2

  inputs = np.pad(inputs, pad_width=[(h_pad, h_pad), (w_pad, w_pad)], mode="constant", constant_values=0)

  outputs = np.zeros(shape=(h, w))

  for i in range(h): # 行号

  for j in range(w): # 列号

  outputs[i, j] = np.sum(np.multiply(inputs[i: i + h1, j: j + w1], kernel))

  return outputs

  以上就是python在二维图像上进行卷积的方法,希望对大家有所帮助。更多Python学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线