[−][src]Function simplecv::filter::filter
pub fn filter<S, K>(
src: &ArrayBase<S, Ix2>,
kernel: &ArrayBase<K, Ix2>,
border: BorderType
) -> Array<f64, Ix2> where
S: Data<Elem = f64>,
K: Data<Elem = f64>,
Apply a linear filter to the source image.
The method of dealing with border situation is selected by border
. By setting
border=Reflect
, you will get the default result of OpenCV.
Example
use simplecv::filter::*; use ndarray::arr2; let A = arr2(&[[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 1.0, 1.0, 0.0], [0.0, 1.0, 1.0, 1.0, 0.0], [0.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]]); let kernel = arr2(&[[1.0, 2.0, 1.0], [2.0, 4.0, 2.0], [1.0, 2.0, 1.0]]); let target = arr2(&[[1.0, 3.0, 4.0, 3.0, 1.0], [3.0, 9.0, 12.0, 9.0, 3.0], [4.0, 12.0, 16.0, 12.0, 4.0], [3.0, 9.0, 12.0, 9.0, 3.0], [1.0, 3.0, 4.0, 3.0, 1.0]]); let output = filter(&A, &kernel, BorderType::Constant(0.0)); assert_eq!(target, output);