Table of Contents
QccFilterMatrixSeparable - perform separable FIR filtering of a two-dimensional
signal
#include "libQccPack.h"
int QccFilterMatrixSeparable(const
QccMatrix input_matrix, QccMatrix output_matrix, int num_rows, int num_cols,
const QccFilter *horizontal_filter, const QccFilter *vertical_filter,
int boundary_extension);
QccFilterMatrixSeparable() implements
the separable two-dimensional FIR filtering of a two-dimensional signal.
horizontal_filter gives the one-dimensional FIR filter for filtering along
the rows (i.e., in the horizontal direction); vertical_filter gives the
one-dimensional FIR filter for filtering along the columns (i.e., in the
vertical direction). input_matrix is the two-dimensional input signal (of
QccMatrix data type, size num_rows rows by num_cols columns) to be filtered,
and output_matrix is the resulting filtered signal. Sufficient storage
space for output_matrix must be allocated (by a call to QccMatrixAlloc(3)
)
prior to calling QccFilterMatrixSeparable().
The FIR filtering operation
is implemented by time-domain convolutions, one for each row and column
in the input signal. These convolutions are implemented by calls to QccFilterVector(3)
for each row and column. boundary_extension informs QccFilterMatrixSeparable()
of the method to employ to handle the left and right signal boundaries
in these convolutions. See QccFilterVector(3)
for the possible values
of boundary_extension.
QccFilterMatrixSeparable() returns
0 on success, 1 on failure.
QccFilterVector(3)
, QccFilter(3)
,
QccMatrix(3)
, QccPack(3)
Copyright (C) 1997-2021 James E. Fowler
Table of Contents