基于pytorch对图像进行卷积操作

Posted bug你不要过来啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于pytorch对图像进行卷积操作相关的知识,希望对你有一定的参考价值。

基于pytorch对图像进行卷积操作

  1. 首先将需要的库准备好,博主使用的是python3.8,pytorch1.7.1
import cv2
import torch
import torch.nn as nn
import matplotlib.pyplot as plt
import numpy as np
  1. cv2读取图片,并将其转换为(640,640,3),可以不转换
img = cv2.imread(r'D:\\Hooded_Cotton_Canvas_Anorakimg_00000001.jpg')
img = cv2.resize(img, (640, 640))

原图

  1. 转换为tensor张量
input_tensor = torch.from_numpy(img).float().permute(2, 0, 1)
input_tensor = input_tensor.unsqueeze(0)

  1. 定义卷积层,此处卷积层的输入通道数为 3,因为图像是 RGB 图像。卷积核的大小为 3 x 3,步长为 1,且使用了 1 像素的填充。输出通道数为 64。
conv = nn.Conv2d(3, 32, 3, stride=1, padding=1)

output = conv(input_tensor)
  1. 如若要将其导出需要经过一下方法
output = output.squeeze(0).detach()
output = output.numpy()
output = output.astype(np.uint8)

# 此时导出的为第0层,灰度图像,一共三层,0、1、2
img = Image.fromarray(output[0])
img.save('new.jpg')

0

1

2

如果有不对的地方还请指正!
参考文章:

https://blog.csdn.net/u014546828/article/details/109297257

以上是关于基于pytorch对图像进行卷积操作的主要内容,如果未能解决你的问题,请参考以下文章

pytorch 中实现CNN,对CNN的理解心得

干货使用Pytorch实现卷积神经网络

PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类与图像风格迁移

[图像处理]基于 PyTorch 的高斯核卷积

pytorch学习笔记:卷积神经网络CNN(基础篇)

详解pytorch CNN操作