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


相关文章
|
2月前
|
安全 算法框架/工具 Python
使用雅可比椭圆函数为Reissner平面有限应变梁提供封闭形式解(Matlab代码实现)
使用雅可比椭圆函数为Reissner平面有限应变梁提供封闭形式解(Matlab代码实现)
|
3月前
|
算法 机器人 定位技术
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
|
2月前
|
数据采集 新能源 调度
【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
104 4
|
2月前
|
Serverless Python
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
229 4
|
2月前
|
存储 编解码 并行计算
【快速傅里叶变换FFT、窗函数法、希尔伯特-黄变换、小波变换】电力系统同步相量计算研究(Matlab代码实现)
【快速傅里叶变换FFT、窗函数法、希尔伯特-黄变换、小波变换】电力系统同步相量计算研究(Matlab代码实现)
134 6
|
2月前
|
机器学习/深度学习 传感器 算法
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
101 1
|
3月前
|
算法 Java 计算机视觉
【图像去模糊】非盲去模糊实景图像处理,使用点扩散函数(PSF)快速去除实景图像中的模糊(Matlab代码实现)
【图像去模糊】非盲去模糊实景图像处理,使用点扩散函数(PSF)快速去除实景图像中的模糊(Matlab代码实现)
257 2
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
117 0

热门文章

最新文章