【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:输出数组是完全滤波后的结果,因此比输入数组大。


目录
相关文章
|
4月前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
142 0
matlab--------矩阵重构,重新排列的相关函数说明
matlab定点化_(fi函数)
matlab定点化_(fi函数)
|
10天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。
|
1月前
|
数据建模 Python
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数(上)
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数
31 7
|
2月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
1月前
|
算法 数据建模 Python
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数(下)
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数
42 3
|
1月前
|
Python
【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
Python中实现MATLAB中rectint函数的方法,该函数用于计算两个矩形相交区域的面积,并通过定义Rectangle类和calc_area函数展示了如何计算两个矩形的交集面积。
32 1
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MQAM调制识别matlab仿真
**理论**: 利用CNN自动识别MQAM调制信号,通过学习星座图特征区分16QAM, 64QAM等。CNN从原始数据提取高级特征,优于传统方法。 - **CNN结构**: 自动特征学习机制,适配多种MQAM类型。 - **优化**: 损失函数指导网络参数调整,提升识别准确度。 - **流程**: 大量样本训练+独立测试评估,确保模型泛化能力。 - **展望**: CNN强化无线通信信号处理,未来应用前景广阔。
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MPSK调制识别matlab仿真
本项目展示一种基于CNN的MPSK调制识别算法,可在Matlab 2022a上运行。该算法能自动区分BPSK、QPSK及8PSK信号,利用卷积层捕捉相位特征并通过全连接层分类。训练过程涉及调整网络权重以最小化预测误差,最终实现对未知信号的有效识别。附带完整代码与说明视频。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于负相关误差函数的4集成BP神经网络matlab建模与仿真
**算法预览:** 图像显示无水印的2022a版MATLAB运行结果 **软件版本:** MATLAB 2022a **核心代码片段:** 省略展示 **理论概述:** NCL集成BP网络利用负相关提升泛化,结合多个弱模型减少错误关联。通过λ参数控制模型间负相关程度,λ>0增强集成效果,提高预测准确性和系统稳健性。

热门文章

最新文章