filter2

最后都变了- 提交于 2020-01-17 05:23:41


filter2 二维数字滤波器

语法

Y=filter2(H,X)
Y=filter2(H,X,shape)

说明

Y=filter2(H,X)根据矩阵H中的系数,对数据矩阵X应用有限脉冲响应滤波器。
Y=filter2(H,X,shape),根据shape返回滤波数据的子区。例如,Y=filter2(H,X,‘valid’)仅返回计算的没有补零边缘的滤波数据。

示例

二维台座

您可以使用与 conv2 函数紧密相关的 filter2 函数对图像和其他二维数据进行数字滤波。

创建并绘制一个内部高度等于 1 的二维台座。

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)

在这里插入图片描述

H = [1 2 1; 0 0 0; -1 -2 -1];
Y = filter2(H,A,'full');
mesh(Y)

在这里插入图片描述
将 H 旋转 180 度,并将结果与 A 进行卷积。该输出等同于按照 H 中的系数对 A 中的数据进行滤波。

C = conv2(A,rot90(H,2));
mesh(C)

在这里插入图片描述

shape-滤波数据的子区

shape - 滤波数据的子区
‘same’ (默认) | ‘full’ | ‘valid’
滤波数据的子区,指定为下列值之一:

‘same’ - 返回滤波数据的中心部分,大小与 X 相同。

‘full’ - 返回完整的二维滤波数据。

‘valid’ - 仅返回计算的没有补零边缘的滤波数据部分。

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)
H = [1 2 1; 0 0 0; -1 -2 -1];
Y = filter2(H,A,'valid');
mesh(Y)

在这里插入图片描述

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)
H = [1 2 1; 0 0 0; -1 -2 -1];
Y = filter2(H,A,'same');
mesh(Y)

在这里插入图片描述

算法

filter2 函数通过取输入 X 的二维卷积和旋转 180 度的系数矩阵 H 对数据进行滤波。具体而言,就是 filter2(H,X,shape) 等同于 conv2(X,rot90(H,2),shape)。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!