• 技术文章 >Python技术 >Python基础教程

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

    小妮浅浅小妮浅浅2021-08-05 09:53:59原创4238

    说明

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

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

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    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学习指路:python基础教程

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

    专题推荐:python 二维图像
    上一篇:python中高斯模糊是什么 下一篇:python读取txt文件

    相关文章推荐

    • python中Locust的安装和使用• python中Pycharm如何调试视图• python中Pycharm的快捷键及用法• python整数的用法整理• python数据拼接如何实现• Python pandas和numpy的区别• python中pandas有哪些功能特色• python中pandas排序的两种形式• python中DataFrame的运算总结• python数据离散化是什么• python文件的三大访问方式• python打开文件的两种方式• python按行读取文件的方法比较• python不同大小文件的复制方法• Python解释器有哪几种• python可变数据类型和不可变数据类型的区别• python引用计数机制的使用• python中异步非阻塞如何实现• python实例方法中self的作用• python变量中self的添加

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网