卷积和滤波对图像操作的区别

发布时间:2024年01月18日

目录

问题引入

解释

卷积

滤波


问题引入

卷积和滤波是很相似的,都是利用了卷积核进行操作

那么他们之间有什么区别呢?

卷积:会影响原图大小

滤波:不会影响原图大小


解释

卷积

我们用这样一段代码来看

import torch.nn as nn
import torch
x = torch.rand(3,5,5)
print(x.shape)
# 卷积
conv = nn.Conv2d(3,3,kernel_size=3,stride=1)
y= conv(x)
print(y.shape)

我们可以看见图像的大小出现了变换,因为卷积操作舍去了一部分(这里是卷积最基本的原理,大家都明白)


滤波

我们也同样先用一段代码来展示

import cv2


img = cv2.imread("te.png")
print(img.shape)
# print(img[:5,:,0])


img1 = cv2.blur(img,(3,3))
print(img1.shape)
# print(img1[:5,:,0])

img2 = cv2.GaussianBlur(img,(3,3),1)
print(img2.shape)
# print(img2[:5,:,0])

img3 = cv2.medianBlur(img, 3)
print(img3.shape)
# print(img3[:5,:,0])

我们可以看见,图像的大小都没有发生变换,这是为什么呢?

原因: 滤波操作会保留图像的原大小 (这句话怎么理解呢,我们来看下面的滤波的原理)

我们以均值滤波为例子

img1 = cv2.blur(img,(3,3))

我们的卷积核设为3x3的

其实要理解这个很简单,主要看看是如何保留边缘的像素点的

如图所示,以18为中心3x3的区域,左上角的18就会替换为:(18+54+55+121)/4? ?没有的就都不用计算

因此其大小不会发生改变,把每个像素点都照顾到了

文章来源:https://blog.csdn.net/zhuyuyaya/article/details/135672177
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。