1. conv(向量卷积运算)

向量的卷积= 多项式乘法
使用说明:

w=conv(u,v)

u,v为向量,其长度可以不相同。

实例1:多项式乘法

(s^2+2s+2)(s+4)(s+1)

w=conv([1,2,2],conv([1,4],[1,1]))w =
1 7 16 18 8P=poly2str(w,'s')P =
s^4 + 7 s^3 + 16 s^2 + 18 s + 8

2. conv2(二维矩阵卷积运算)

总结出full,same,valid三种卷积后图像大小的计算公式:

1.full: 滑动步长为1,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:(N1+N2-1) x (N1+N2-1)

a=[1 1 1;1 1 1;1 1 1];
b=[1 1 1;1 1 1;1 1 1];
>> conv2(a,b)ans =1     2     3     2     12     4     6     4     23     6     9     6     32     4     6     4     21     2     3     2     1

相当于把a看作图片,b看作卷积核,默认为full 卷积后图像大小为 3+3-1 = 5 * 5

如图1, 滑动步长为1,图片大小为2x2,卷积核大小为3x3,卷积后图像大小:4x4(2+3-1)

图中蓝色为原图像(22),灰色为卷积核(33),白色为对应卷积所增加的padding,通常全部为0,绿色是卷积后图片(4*4)。(2+3-1)

图的卷积的滑动是从卷积核右下角与图片左上角重叠开始进行卷积,滑动步长为1,卷积核的中心元素对应卷积后图像的像素点。

2.same: 滑动步长为1,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:N1xN1

a=[1 1 1;1 1 1;1 1 1];
b=[1 1 1;1 1 1;1 1 1];
>> conv2(a,b,'same')ans =4     6     46     9     64     6     4

3.valid:滑动步长为S,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:[(N1-N2)/S+1] x [(N1-N2)/S+1]

a=[1 1 1;1 1 1;1 1 1];
b=[1 1 1;1 1 1;1 1 1];
>> conv2(a,b,'valid')ans =9

如图2,滑动步长为1,图片大小为5x5,卷积核大小为3x3,卷积后图像大小:3x3

3. MATLAB的conv2函数实现步骤 conv2(A,B)

卷积的时候需要对卷积核进行180的旋转,同时卷积核中心与需计算的图像像素对齐,输出结构为中心对齐像素的一个新的像素值

其中,矩阵A和B的尺寸分别为mana即mbnb

① 对矩阵A补零,
第一行之前和最后一行之后都补mb-1行,
第一列之前和最后一列之后都补nb-1列
(注意conv2不支持其他的边界补充选项,函数内部对输入总是补零);

③ 滑动旋转后的卷积核,将卷积核的中心位于图像矩阵的每一个元素,并求乘积和(即将旋转后的卷积核在A上进行滑动,然后对应位置相乘,最后相加);
下面分别是shape=full, same, valid时取输出图像大小的情况,其中:

位置1表示输出图像的值从当前核的计算值开始(对应输出图像左上角),
位置2表示到该位置结束(对应输出图像右下角)

‘full’ 全卷积(默认值)。
‘same’ 与 u 大小相同的卷积的中心部分。
‘valid’ 仅计算没有补零边缘的卷积部分。此时,length(y) 是 max(length(u)-length(v)+1,0)。

4.convn(n维矩阵卷积运算)

a=ones(5,5,5)

a(:,:,1) =

 1     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     1

a(:,:,2) =

 1     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     1

a(:,:,3) =

 1     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     1

a(:,:,4) =

 1     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     1

a(:,:,5) =

 1     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     1

b=ones(5,5,5);

convn(a,b,‘valid’)

ans =

125

convn(a,b,‘same’)

ans(:,:,1) =

27    36    45    36    27
36    48    60    48    36
45    60    75    60    45
36    48    60    48    36
27    36    45    36    27

ans(:,:,2) =

36    48    60    48    36
48    64    80    64    48
60    80   100    80    60
48    64    80    64    48
36    48    60    48    36

ans(:,:,3) =

45    60    75    60    45
60    80   100    80    60
75   100   125   100    75
60    80   100    80    60
45    60    75    60    45

Reference:
1.MATLAB卷积运算(conv、conv2、convn)解释
2.MATLAB-conv函数

MATLAB卷积conv、conv2、convn详解相关推荐

  1. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  2. group convolution (分组卷积)的计算量详解、卷积计算量特征图大小,池化特征图大小、深度通道deep-wise 卷积

    group convolution (分组卷积)的计算量详解.卷积计算量特征图大小,池化特征图大小.深度通道deep-wise 卷积 提示:最近忙着各种提前批的笔试面试,所以没太多空刷题了都,先复盘一 ...

  3. matlab做拉普拉斯曲线,Matlab 拉普拉斯滤波 以及 imfilter 详解(多图)

    Matlab 拉普拉斯滤波 以及 imfilter 详解(多图) 08-08栏目:技术 TAG:imfilter imfilter 代码: jhua.orgclc clear all A=imread ...

  4. 卷积神经网络CNN原理详解(一)——基本原理

    卷积神经网络CNN原理详解(一)--基本原理 转载过来为了自己以后学习方便,大家请看原文章 为什么要用神经网络? 特征提取的高效性. 大家可能会疑惑,对于同一个分类任务,我们可以用机器学习的算法来做, ...

  5. 车牌识别与计算机编程,基于MATLAB的车牌识别程序详解.ppt

    基于MATLAB的车牌识别程序详解 自定义一个字符函数,用来从车牌区域中提取出7个字符,其中利用切割函数来进行切割. 程序:function [word,result]=getword(d) word ...

  6. matlab 0106,MATLAB控制系统仿真与实例详解.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab MATLAB控制系统仿真与实例详解.pdf6页 本 ...

  7. matlab图像处理常见函数及用法详解

    matlab图像处理常见函数及用法详解 -- 整理于2022.12.2 ,23.05-- clc;clear;%% 图片读取 RGB = imread('1.jpg'); % 图片读取 imshow( ...

  8. matlab中读入sav,matlab数据读取与存入详解

    matlab数据读取与存入详解 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出 ...

  9. 单纯形法详解及MATLAB实现,对偶单纯形法详解及MATLAB实现

    单纯形法详解及MATLAB实现,对偶单纯形法详解及MATLAB实现 单纯形法 我们以这样一个方程组做为例子,来看一下单纯形法是如何解题的 这是一个已经化成标准形式的方程组,x4和x5是我们加入的松弛变 ...

  10. 卷积神经网络原理图文详解

    卷积神经网络原理详解 前言 卷积(convolution) 池化(pooling) 正则化(normalization)/ReLU 全连接(fully connect) 全连接的另一种解释方式 神经网 ...

最新文章

  1. (C++)1016 部分A+B 正整数
  2. Symantec(VeriSign)SSL证书
  3. 《Java和Android开发实战详解》——2.2节构建Java应用程序
  4. 超图理论的一点理解(一)
  5. Java——获取和设置多线程的名称
  6. 散列表(二):冲突处理的方法之链地址法的实现
  7. Python数据分析:pandas玩转Excel(一)
  8. 计算机网络技术-----==一些东西
  9. 宽凳科技,这是前百度外卖董事长刘骏的新征途
  10. PHP XAMPP windows环境安装扩展redis 致命错误: Class ‘Redis‘ not found解决方法
  11. 斗鱼的sidebar的实现简陋的demo
  12. redis bitmap存储入门
  13. skin文件启用智能提示的小技巧
  14. 将ttc改为otf_几种字体格式的区别otf/ttf/ttc格式字体的区别
  15. linux系统创建桌面快捷方式,linux创建桌面快捷方式
  16. 【编程训练-考研上机模拟】综合模拟1-2019浙大上机模拟(晴神)
  17. [易飞]包材Forcast四周滚动需求
  18. mac+微信打开连接到服务器,MAC OS系统 ,微信接收到的文件,打开wo… - Apple 社区...
  19. xx壳通过外网远程访问本地SQLServer服务器(原创)
  20. 【SIM】MCC(移动国家码)和 MNC(移动网络码)

热门文章

  1. 如何在Mac上轻松使用SVN
  2. @JsonView的使用
  3. 微型计算机控制技术王艳芳,基于单片机液位控制器的设计与实现最终版(样例3)...
  4. c语言饭卡管理系统_C语言饭卡管理系统(附代码) -
  5. C#与PLC通信开发之松下FP系列PLC
  6. 安卓机顶盒运行linux,全志 Allwinner A20 机顶盒刷入原生 Debian
  7. Idea 中图片资源无法加载问题
  8. 台达伺服b3参数_台达ECMA伺服马达规格参数表
  9. NB-IOT平台之电信平台FOTA 升级记录
  10. Apowersoft ApowerMirror v1.4.5 终身商业授权破解版 安卓/iPhone投屏控制软件