I don't have time to write all the code out, but if you're covering a lot of the screen with blurred, my approach would be to, every frame:
- Pipe your camera output to a RenderTexture
- Run a blur post-processing effect on it to get a predetermined amount of blur (not varying levels)
- Use a custom shader+material on your UIAtlas that reads the blurred texture "under" it (ComputeScreenPos) and uses that as its color
You could still control blur amount in your shader and lerp between the sharp and blurred textures if you wanted.
Alternately, if it's just being used in select places, you could skip the first 2 steps and just use GrabPass[] in your custom shader, and take the hit on doing 4+ texture reads per pixel to blur it on-the-fly.