【Matlab】conv、filter、conv2、filter2和imfilter卷积函数总结-中

简介: MATLAB中卷积函数总结包括:conv、filter、conv2、filter2和imfilter

conv2函数

作用:二维卷积

A = rand(3);
B = rand(4);
C = conv2(A,B)

conv2函数

1、用法

C=conv2(A,B,shape); %卷积滤波

A:输入图像,B:卷积核

假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则

当shape=full时,返回全部二维卷积结果,即返回C的大小为(ma+mb-1)x(na+nb-1)

shape=same时,返回与A同样大小的卷积中心部分

shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回C的大小为(ma-mb+1)x(na-nb+1)

2、实现步骤

假设输入图像A大小为ma x na,卷积核大小为mb x nb,则MATLAB的conv2函数实现流程如下:

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

b、关于卷积核的中心,旋转卷积核180度。

c、滑动卷积核,将卷积核的中心位于图像矩阵的每一个元素。

d、将旋转后的卷积核乘以对应的矩阵元素再求和。

filter2函数

1、用法

B = filter2(h,A,shape) ; %相关(correlation)滤波


* A:输入图像,h:相关核

* 假设输入图像A大小为ma x na,相关核h大小为mb x nb,则

当shape=full时,返回全部二维卷积结果,即返回B的大小为(ma+mb-1)x(na+nb-1)

* shape=same时,返回与A同样大小的卷积中心部分

* shape=valid时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回B的大小为(ma-mb+1)x(na-nb+1)


2、实现步骤

假设输入图像A大小为ma x na,相关核h大小为mb x nb,MATLAB的filter2的实现流程如下:

* a、对输入图像补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都补nb-1列(注意filter2不支持其他的边界补充选项,函数内部对输入总是补零)。

* b、滑动相关核,将相关核的中心位于图像矩阵的每一个元素。

* c、将相关核乘以对应的矩阵元素再求和


注意filter2**不对核进行180°旋转**,直接对应相乘再相加,这一点与conv2不同。


imfilter函数

1、用法

B=imfilter(A,H,option1,option2,option3);


A:输入图像,H:滤波核

* option1:边界选项,可选的有:补充固定的值X(默认都补零),symmetric,replicate,circular

* option2:输出图像大小选项,可选的有same(默认),full

* option3:决定采用与filter2相同的相关滤波还是与conv2相同的卷积滤波


2、优势:

Padding Options 填充选项

1)默认补0

d9986f4207114d418939117648c6a9d3.png

d7724e5bdffb459cb5fcc9d12e01c008.png

2)symmetric 对称:数组边界之外的输入数组值是通过沿数组边界对数组进行镜面反射得到

f39aa342e02e40ecb866946dd56d6df2.png


e98fd0dd88614396a6e20520ae3451b0.jpg

3)replicate 复制:数组边界之外的输入数组值假定为等于最近的数组边界值

e9f258e42fc24df0a13d619a4e9cb0ba.png

c7618fd0c6b54418bc0907a7e676eda4.png

fbee53129c8d4d2ca3788c555e6c1c17.png

4)circular 循环:数组边界之外的输入数组值是通过隐式假设输入数组具有周期性来计算的。

0793dc4ddd5d47dcab90234d4139b9f3.png85379a20ab464d3ebdcf1825b103024b.png

Output Size 输出大小

same:输出数组与输入数组大小相同。这是未指定输出大小选项时的默认行为。

full:输出数组是完全滤波后的结果,因此比输入数组大。


目录
相关文章
matlab定点化_(fi函数)
matlab定点化_(fi函数)
|
2月前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了基于分组卷积神经网络(GroupCNN)和灰狼优化(GWO)的时间序列回归预测算法。算法运行效果良好,无水印展示。使用Matlab2022a开发,提供完整代码及详细中文注释。GroupCNN通过分组卷积减少计算成本,GWO则优化超参数,提高预测性能。项目包含操作步骤视频,方便用户快速上手。
|
2月前
|
算法 数据可视化 数据处理
MATLAB内置函数
【10月更文挑战第6天】本文详细介绍了MATLAB的内置函数和自定义函数,涵盖数学计算、矩阵操作、图形绘制等方面。通过具体代码示例,展示了如何使用内置函数和创建自定义函数,以及它们在性能、灵活性和可读性上的优劣。同时,文章还讨论了函数文件与脚本文件的区别,匿名函数和函数句柄的高级应用,帮助读者更好地利用MATLAB解决复杂问题。
64 1
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种基于WOA优化的GroupCNN分组卷积网络时间序列预测算法。使用Matlab2022a开发,提供无水印运行效果预览及核心代码(含中文注释)。算法通过WOA优化网络结构与超参数,结合分组卷积技术,有效提升预测精度与效率。分组卷积减少了计算成本,而WOA则模拟鲸鱼捕食行为进行优化,适用于多种连续优化问题。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
该算法结合了遗传算法(GA)与分组卷积神经网络(GroupCNN),利用GA优化GroupCNN的网络结构和超参数,提升时间序列预测精度与效率。遗传算法通过模拟自然选择过程中的选择、交叉和变异操作寻找最优解;分组卷积则有效减少了计算成本和参数数量。本项目使用MATLAB2022A实现,并提供完整代码及视频教程。注意:展示图含水印,完整程序运行无水印。
|
2月前
|
存储 机器学习/深度学习 数据可视化
MATLAB脚本与函数
【10月更文挑战第4天】本文介绍了MATLAB脚本与函数的基本概念及编写方法,涵盖脚本和函数的创建、运行及优缺点,通过示例帮助初学者快速上手。同时,文章还涉及数据类型、控制结构、数据可视化、文件操作、错误处理等内容,提供了丰富的示例和学习资源,助力初学者逐步掌握MATLAB编程。
110 3
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。
|
5月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
4月前
|
Python
【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
Python中实现MATLAB中rectint函数的方法,该函数用于计算两个矩形相交区域的面积,并通过定义Rectangle类和calc_area函数展示了如何计算两个矩形的交集面积。
56 1