Did you ever wonder how some algorithm would perform with a slightly different Gaussian blur kernel? Well than this page might come in handy: just enter the desired standard deviation and the kernel size (all units in pixels) and press the “Calculate Kernel” button. You’ll get the corresponding kernel weights for use in a one or two pass blur algorithm in two neat tables below.

## One dimensional Kernel

This kernel is useful for a two pass algorithm: First perform a horizontal blur with the weights below and then perform a vertical blur on the resulting image (or vice versa).

0.06136 | 0.24477 | 0.38774 | 0.24477 | 0.06136 |

## Two dimensional Kernel

These weights below be used directly in a single pass blur algorithm: samples per pixel.

0.003765 | 0.015019 | 0.023792 | 0.015019 | 0.003765 |

0.015019 | 0.059912 | 0.094907 | 0.059912 | 0.015019 |

0.023792 | 0.094907 | 0.150342 | 0.094907 | 0.023792 |

0.015019 | 0.059912 | 0.094907 | 0.059912 | 0.015019 |

0.003765 | 0.015019 | 0.023792 | 0.015019 | 0.003765 |

## Analysis & Implementation Details

Below you can find a plot of the continuous distribution function and the discrete kernel approximation. One thing to look out for are the tails of the distribution vs. kernel support: For the current configuration we have **1.24%** of the curve’s area outside the discrete kernel. Note that the weights are renormalized such that the sum of all weights is one. Or in other words: the probability mass outside the discrete kernel is redistributed evenly to all pixels within the kernel.

The weights are calculated by numerical integration of the continuous gaussian distribution over each discrete kernel tap. Take a look at the java script source in case you are interested.

# Links