| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Video and Image Processing Blockset |
| Contents | Index |
| Learn more about Video and Image Processing Blockset |
S = isfilterseparable(H)
[S, HCOL, HROW] = isfilterseparable(H)
S = isfilterseparable(H) takes in the filter kernel H and returns 1 (true) when the filter is separable, and 0 (false) otherwise.
[S, HCOL, HROW] = isfilterseparable(H) uses the filter kernel, H, to return its vertical coefficients HCOL and horizontal coefficients HROW when the filter is separable. Otherwise, HCOL and HROW are empty.
Separable two-dimensional filters reflect the outer product of two vectors. Separable filters help reduce the number of calculations required.
A two-dimensional convolution calculation requires (width*height) number of multiplications for each output pixel. The general case equation for a two-dimensional convolution is:
![]()
If the filter H is separable then,
![]()
Shifting the filter instead of the image, the two-dimensional equation becomes:
![]()
This calculation requires only (width + height) number of multiplications for each pixel.
H |
H numeric or logical, 2-D, and nonsparse. |
HCOL |
HCOL is the same data type as input H when H is either single or double floating point. Otherwise, HCOL becomes double floating point. If S is true, HCOL is a vector of vertical filter coefficients. Otherwise, HCOL is empty. |
HROW |
HROW is the same data type as input H when H is either single or double floating point. Otherwise, HROW becomes double floating point. If S is true, HROW is a vector of horizontal filter coefficients. Otherwise, HROW is empty. |
S |
S is a logical variable that is true, when the filter is separable, and false, when it is not. |
Determine if the Gaussian filter created using the fspecial function is separable.
% Create a gaussian filter
two_dimensional_filter = fspecial('gauss');
% Test with isfilterseparable
[isseparable, hcol, hrow] = isfilterseparable(two_dimensional_filter)
When you run this example, notice that hcol*hrow equals the two_dimensional_filter. This result is expected for a Gaussian filter.
The isfilterseparable function uses the singular value decomposition svd function to determine the rank of the matrix.
2-D FIR Filter | rank | svd
![]() | Function Reference | mplay | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |