知行编程网知行编程网  2022-11-08 01:30 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python如何在二维图像上进行卷积的相关知识,包括图像卷积怎么计算,以及卷积可视化这些编程知识,希望对大家有参考作用。

python如何对二维图像进行卷积


说明

1、对于一个二维矩阵,卷积核在卷积时从左到右,从上到下滑动,对应的位置需要一个加权和。

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


实例

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


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享