I have some simulated images of light bulbs in Matlab. What I want to do is replicate the bloom (glow) effect on these images. The degree of the effect (i.e. how much the light bulbs bloom) should be controllable.

Is there any implemented function in Matlab Image Processing Toolbox help me to achieve this. Or is there any simple algorithm for this. I don't want a sophisticated algorithm since I don't require the bloom effect to be precisely replicated.

I would appreciate any suggestion.

Thank you.


Work in a linear gamma (intensity-linear) color space. Create a Gaussian blurred version of the image. I don't have MATLAB to try it, but it can be done using imgaussfilt. Then add some of the blurred image to the original image, or mix the two images to taste.

Simulated bloom
Figure 1. Bloom simulated in Gimp by adding to the image its Gaussian blurred copy at 31.5 % opacity.

  • $\begingroup$ Nice! Do you know is this the method or just one of many methods? $\endgroup$ – Fat32 Jun 10 '17 at 10:19
  • 1
    $\begingroup$ @Fat32 directxtk.codeplex.com/… is an example that at least someone does it this way. One could use more natural point spread functions than Gaussian + impulse. Gaussian blur is pretty cheap to calculate though because it is separable, and it can be approximated. There's some literature on human eye point spread functions. $\endgroup$ – Olli Niemitalo Jun 10 '17 at 10:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.