Performing 2D convolution on an image with separable kernels, then, is equivalent to multiplying the results of convolving over the image columns with the vertical kernel and convolving over the image rows with the horizontal kernel. (And because convolution is commutative, the order doesn’t matter!)

Illustration of a vertical filter convolving over image columns multiplied by a horizontal filter convolving over image rows.

(Page 11)