Skip to main content

filter_2d_separable

Function filter_2d_separable 

Source
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 image
  • destination: Destination image
  • image_size: Image size see FilterImageSize
  • row_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.