图像处理中的valid卷积与same卷积
valid卷积
在full卷积的卷积过程中,会遇到\(K_{flip}\)靠近I的边界(K矩阵与I矩阵),就会有部分延申到I之外,这时候忽略边界,只考虑I完全覆盖\(K_{flip}\)内的值情况,这个的过程就是valid卷积。一个高为H1,宽为W1的矩阵I与高为H2,宽为W2的矩阵K,在H1大于等于H2,W1大于等于W2的情况下,valid卷积的结果就是一个(H1-H2+1)*(W-W+1)的矩阵\(C_{valid}\)。
\]
same卷积
无论是full卷积还是valid卷积都不会得到正好的尺寸,要么比原尺寸大要么比原尺寸小,这时就需要same卷积来解决这个问题。若想得到宽和高都正好的矩阵我们首先需要给\(K_{flip}\)一个锚点,将锚点放在(循环)图像矩阵的(r,c)处,((r,c)在矩阵之内),将对应位置的元素逐个相乘,最终将所有的积进行求和作为输出图像矩阵在(r,c)处的输出值。这个过程称为same卷积。
OpenCv函数copyMakeBorder的参数表
参数 | 解释 |
---|---|
src | 输入矩阵 |
dst | 输出矩阵 |
top | 上侧扩充的行数 |
bottom | 下侧扩充的行数 |
left | 左侧扩充的行数 |
right | 右侧扩充的行数 |
borderType | 边界扩充的类型 |
value | border Type= BORDER_CONSTANT事的常数 |
其中borderType有多种类型,比如:BORDER_REPLICATE(边界复制)、BORDER_CONSTANT(常数扩充)、BORDER_REFLECT(反射扩充)等。
在使用Python进行卷积操作时用到包Scipy,其中有关的操作函数为convolve2d(in1,in2,mode='full',boundary='fill',fillvalue=0)
参数 | 解释 |
---|---|
in1 | 输入数组 |
in2 | 输入数组,代表K(卷积算子) |
mode | 卷积类型,也就是以上提到的三种类型:full,valid,same |
boundary | 边界填充:fill\wrap\symm |
fillvalue | 当boundary='fill'时,设置边界填充的值,默认为0 |
在这里需要注意的是当model为same时卷积算子的锚点位置由不同尺寸而不同,假设K(卷积算子)的宽和高分别为W、H。
W和H的值 | 锚点位置 |
---|---|
均为奇数 | 默认为中心点 |
H为偶数、W为奇数 | (H-1,(W-1)/2) |
H为奇数,W为偶数 | ((H-1)/2,W-1) |
均为偶数 | (H-1,W-1) |
代码实现:
import numpy as np
from scipy import signal
if __name__ == "__main__":
I = np.array([[5,6],[7,8],np.float32])
#I的高和宽
H1,W1 = I.shape[:2]
#卷积算子
k = np.array([[-1,-2],[2,1],np.float32])
#K的宽和高
H2,W2 = k.shape[:2]
#计算full卷积
c_full = signal.convolve2d(I,k,mode='full')
#设定锚点
r,c = 0,0
#根据锚点来从full卷积中截取same卷积
c_same= c_full[H2-r-1:H1-r-1,W2-c-1:W1+W2-c-1]
图像处理中的valid卷积与same卷积的更多相关文章
- 图像处理中任意核卷积(matlab中conv2函数)的快速实现。
卷积其实是图像处理中最基本的操作,我们常见的一些算法比如:均值模糊.高斯模糊.锐化.Sobel.拉普拉斯.prewitt边缘检测等等一些和领域相关的算法,都可以通过卷积算法实现.只不过由于这些算法的卷 ...
- Full卷积、Same卷积、Valid卷积、带深度的一维卷积
转载和参考以下几个链接:https://www.cnblogs.com/itmorn/p/11177439.html; https://blog.csdn.net/jack__linux/articl ...
- (原)CNN中的卷积、1x1卷积及在pytorch中的验证
转载请注明处处: http://www.cnblogs.com/darkknightzh/p/9017854.html 参考网址: https://pytorch.org/docs/stable/nn ...
- tensorflow中卷积、转置卷积具体实现方式
卷积和转置卷积,都涉及到padding, 那么添加padding 的具体方式,就会影响到计算结果,所以搞清除tensorflow中卷积和转置卷积的具体实现有助于模型的灵活部署应用. 一.卷积 举例说明 ...
- 深度学习面试题10:二维卷积(Full卷积、Same卷积、Valid卷积、带深度的二维卷积)
目录 二维Full卷积 二维Same卷积 二维Valid卷积 三种卷积类型的关系 具备深度的二维卷积 具备深度的张量与多个卷积核的卷积 参考资料 二维卷积的原理和一维卷积类似,也有full卷积.sam ...
- 深度学习面试题09:一维卷积(Full卷积、Same卷积、Valid卷积、带深度的一维卷积)
目录 一维Full卷积 一维Same卷积 一维Valid卷积 三种卷积类型的关系 具备深度的一维卷积 具备深度的张量与多个卷积核的卷积 参考资料 一维卷积通常有三种类型:full卷积.same卷积和v ...
- Convolution Network及其变种(反卷积、扩展卷积、因果卷积、图卷积)
今天,主要和大家分享一下最近研究的卷积网络和它的一些变种. 首先,介绍一下基础的卷积网络. 通过PPT上的这个经典的动态图片可以很好的理解卷积的过程.图中蓝色的大矩阵是我们的输入,黄色的小矩阵是卷积核 ...
- DeepLearning.ai学习笔记(四)卷积神经网络 -- week1 卷积神经网络基础知识介绍
一.计算机视觉 如图示,之前课程中介绍的都是64* 64 3的图像,而一旦图像质量增加,例如变成1000 1000 * 3的时候那么此时的神经网络的计算量会巨大,显然这不现实.所以需要引入其他的方法来 ...
- 卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解
作者:szx_spark 由于计算机视觉的大红大紫,二维卷积的用处范围最广.因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用. 1. 二维卷积 图中的输入的数据 ...
随机推荐
- 剑指Offer之变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:由于青蛙每次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级,故除了 ...
- [python爬虫]简单爬虫功能
在我们日常上网浏览网页的时候,经常会看到某个网站中一些好看的图片,它们可能存在在很多页面当中,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标 ...
- Mysql基础(三)
#DML语言 /* 数据操作语言 插入:insert insert into 表名(列名,...) values(值1,...); insert into 表名 set 列名=值, 列名=值,... ...
- 慕零的黑夜-头条-第二期(CSDN)[导读:] CSDN的15个bug&用户意见(很大) 作者:qq3461896724
首先介绍CSDN: 相信"金山词霸,金山打字通"许多人都用过,而金山副总监 创办了 "全球最大中文IT技术平台,成就一亿技术人"的CSDN(Chinese s ...
- 北醒激光模块TFmini——STM32驱动程序(STM32F103C8T6)
背景:该激光模块属于精度比较高的激光测距模块,使用方便. 代码地址:https://github.com/W-yt/YuTian_Pro/tree/master/TFMini_Driver 平台: 硬 ...
- 「MoreThanJava」计算机系统概述
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- 蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)
蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法) 首先这不是一个多难的题,但是网上的我没怎么找到有Java的代码,基本全都是c语言的,小编是个小白,如果有不对的地方请联系小编 问题描述 ...
- Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
730. 统计不同回文子字符串 给定一个字符串 S,找出 S 中不同的非空回文子序列个数,并返回该数字与 10^9 + 7 的模. 通过从 S 中删除 0 个或多个字符来获得子字符序列. 如果一个字符 ...
- Java实现 LeetCode 515 在每个树行中找最大值
515. 在每个树行中找最大值 您需要在二叉树的每一行中找到最大的值. 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] /** * Definition for ...
- java实现第七届蓝桥杯剪邮票
剪邮票 题目描述 如[图1.jpg], 有12张连在一起的12生肖的邮票. 现在你要从中剪下5张来,要求必须是连着的. (仅仅连接一个角不算相连) 比如,[图2.jpg],[图3.jpg]中,粉红色所 ...