图像经过卷积后的尺寸计算(待更新)

图像经过卷积后的尺寸

1.pytorch计算公式
torch.nn.Conv2d(),其中padding可以为0、1、2,默认dilation =1,则简化式为:

out_size = (in_size - K + 2P)/ S +1

2.TensorFlow计算公式
TensorFlow的Conv2d函数的padding只有“same”和“valid”两个选项。
padding = same: out_size = in_size / stride(与kernel_size无关)
padding = valid :out_size = (in_size - K + 2P)/ S +1

参数解释
in_channels,
#输入数据的通道数(如彩色图片,一般为3)
out_channels,
#输出数据的通道数(就是我想让输出多少通道,就设置为多少)
kernel_size,
#卷积核的尺寸(如(3,2),3与(3,3)等同)
stride = 1,
#卷积步长,就是卷积操作时每次移动的格子数
padding = 0,
#原图周围需要填充的格子行(列)数,无填充的话卷积到边缘会直接忽略该边缘
dilation = 1,
#空洞卷积的空洞指数,一般默认为1即可
groups = 1,
#分组卷积的组数,一般默认设置为1,不用管
bias &
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Python一个实现图像卷积的示例代码: ```python import numpy as np import cv2 def convolve(image, kernel): # 获取图像卷积核的宽度和高度 (image_height, image_width) = image.shape[:2] (kernel_height, kernel_width) = kernel.shape[:2] # 初始化卷积结果矩阵,宽度和高度为原始图像尺寸 output = np.zeros((image_height, image_width), dtype="float32") # 遍历图像中每个像素 for y in np.arange(kernel_height // 2, image_height - kernel_height // 2): for x in np.arange(kernel_width // 2, image_width - kernel_width // 2): # 根据卷积核对像素进行加权求和 region = image[y - kernel_height // 2:y + kernel_height // 2 + 1, x - kernel_width // 2:x + kernel_width // 2 + 1] k = (region * kernel).sum() # 将结果存储在输出矩阵中 output[y, x] = k # 将输出矩阵进行归一化(使像素值在0到255之间) output = normalize(output) # 将输出矩阵转换为8位整型图像 output = (output * 255).astype("uint8") # 返回卷积结果 return output def normalize(image): # 计算图像数据的最大值和最小值 (minVal, maxVal) = (np.min(image), np.max(image)) # 将图像数据标准化到0到1之间 if maxVal - minVal != 0: return (image - minVal) / (maxVal - minVal) else: return image / maxVal # 读入待处理图像,将图像灰度化 image = cv2.imread("lena.png") gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 定义卷积核(平滑滤波器) kernel = np.ones((7, 7), dtype="float32") / (7 * 7) # 对灰度图像进行卷积操作 output = convolve(gray, kernel) # 显示原始图像卷积结果 cv2.imshow("Original", gray) cv2.imshow("Processed", output) cv2.waitKey(0) ``` 该代码实现了一个简单的图像卷积操作,可以根据需要修改卷积核的大小和权值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值