pub fn separable_convolve_2d( image: &[f32], width: usize, height: usize, kernel_x: &[f32], kernel_y: &[f32], ) -> Vec<f32>
Separable 2D convolution (more efficient for separable kernels)