fn filter_2d_separable<T, F, I, const N: usize>(
image: &[T],
destination: &mut [T],
image_size: FilterImageSize,
row_kernel: &[F],
column_kernel: &[F],
) -> Result<(), ImageError>where
T: Copy + AsPrimitive<F> + Default + Send + Sync + KernelTransformer<F, I> + AsPrimitive<I>,
F: Default + 'static + Copy,
I: ToStorage<T> + Mul<I, Output = I> + Add<I, Output = I> + MulAdd<I, Output = I> + Send + Sync + PartialEq + Default + 'static + Copy,
i32: AsPrimitive<F> + AsPrimitive<I>,
f64: AsPrimitive<T>,Expand description
Performs 2D separable convolution on the image
Currently implemented only for symmetrical filters
ยงArguments
image: Single plane imagedestination: Destination imageimage_size: Image size see FilterImageSizerow_kernel: Row kernel, size must be odd!column_kernel: Column kernel, size must be odd!
If both kernels after kernel scan appears to be an identity then just copy is performed.