Python3.X之——卷积计算

设被卷积图像为I = [[ 1.  2.]                设卷积核为Kernel = [[-1. -2.]
                                [ 3.  4.]]                                                  [ 2.  1.]]

# -*-coding: utf-8 -*-
# Filename: mytest1.py
import numpy as np
from scipy import signal

#主函数
if __name__ == '__main__':

    I = np.array([[1,2],[3,4]],np.float32)     #输入矩阵

    H1,W1 = I.shape[:2]      #I的宽和高

    #卷积核
    Kernel = np.array([[-1,-2],[2,1]],np.float32)

    H2,W2 = Kernel.shape[:2]       #核的宽和高

    #计算full卷积
    c_full = signal.convolve2d(I,Kernel,mode='full')
    #指定锚点的位置
    kr,kc = 0,0

    #根据锚点的位置,从full卷积中截取得到same卷积

    c_same = c_full[H2-kr-1:H1+H2-kr-1,W2-kc-1:W1+W2-kc-1]

    print("c_full = ",c_full)
    print("c_same = ",c_same)

卷积计算结果:

Python3.X之——卷积计算_第1张图片

你可能感兴趣的:(Python学习)