【pytorch实现】用卷积核检测图中对角方向边缘(小练习)

练习:
构造一个输入图像X,如何设计卷积核K来检测图像中对角方向的边缘?
检测图像中物体的边缘,即找到像素变化的位置。
构造一个6*6大小由黑到白过渡的图像,0黑,1白。
代码:

x=torch.zeros(6,6)
for i in range(6):
    for j in range(i+1):
        x[i,j] = 1
print(x)

输出:

tensor([[1., 0., 0., 0., 0., 0.],
        [1., 1., 0., 0., 0., 0.],
        [1., 1., 1., 0., 0., 0.],
        [1., 1., 1., 1., 0., 0.],
        [1., 1., 1., 1., 1., 0.],
        [1., 1., 1., 1., 1., 1.]])

构造一个卷积核K探测边缘:
代码:
wh=21

K=torch.tensor([[1],[-1]],dtype=torch.float32)
Y=corr2d(x,K)
print(Y)

wh=12

K=torch.tensor([[1,-1]],dtype=torch.float32)
Y=corr2d(x,K)
print(Y)

结果:

tensor([[ 0., -1.,  0.,  0.,  0.,  0.],
        [ 0.,  0., -1.,  0.,  0.,  0.],
        [ 0.,  0.,  0., -1.,  0.,  0.],
        [ 0.,  0.,  0.,  0., -1.,  0.],
        [ 0.,  0.,  0.,  0.,  0., -1.]])
tensor([[1., 0., 0., 0., 0.],
        [0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0.],
        [0., 0., 0., 1., 0.],
        [0., 0., 0., 0., 1.],
        [0., 0., 0., 0., 0.]])

从黑到白的边缘被检测成了-1或1,其余部分的输出全是0。
可以看出,卷积层可通过重复使用卷积核有效地表征局部空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醪糟小丸子

小小帮助,不足挂齿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值