filter2
二维数字滤波器
说明
示例
二维台座
您可以使用与 conv2
函数紧密相关的 filter2
函数对图像和其他二维数据进行数字滤波。
创建并绘制一个内部高度等于 1 的二维台座。
A = zeros(10); A(3:7,3:7) = ones(5); mesh(A)
根据滤波器系数矩阵 H
对 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)
输入参数
H
— 有理传递函数的系数
矩阵
有理传递函数的系数,指定为矩阵。
数据类型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
复数支持: 是
X
— 输入数据
矩阵
输入数据,指定为矩阵。如果 X
和 H
中有一个或两个都是 single
类型,则输出的类型也是 single
。否则,filter2
将返回 double
类型。
数据类型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
复数支持: 是
shape
— 滤波数据的子区
'same'
(默认) | 'full'
| 'valid'
滤波数据的子区,指定为下列值之一:
'same'
- 返回滤波数据的中心部分,大小与X
相同。'full'
- 返回完整的二维滤波数据。'valid'
- 仅返回计算的没有补零边缘的滤波数据部分。
算法
filter2
函数通过取输入 X
的二维卷积和旋转 180 度的系数矩阵 H
对数据进行滤波。具体而言,就是 filter2(H,X,shape)
等同于 conv2(X,rot90(H,2),shape)
。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅Run MATLAB Functions in Thread-Based Environment。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
输入
H
和X
必须是单精度或双精度数组。同时支持实数和复数类型。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)