It is a well-known artifact that in CMOS cameras with electronic rolling shutter, horizontal banding (flickering), i.e. brightness intensity variations, are observed when the image is recorded under fluorescent lighting. This is due to sequential exposures of the rows of the image, which leads to different intensities in rows of the image due to the 50 Hz (Europe) or 60 Hz (US) AC power line frequency. The light flicker frequency is twice the AC power line frequency, i.e. 100 Hz or 120 Hz, respectively. The figure below (Yoo, 2014) shows the flicker generation process in a CMOS image sensor:
A common solution proposed in the literature for this artifact is to synchronize the exposure time (shutter speed) to an integer multiple of the light modulation period. For example, as seen in the figure, we can set the shutter speed to 1/60 s, and hence avoid flickering (1/120 s would work also since the light modulation frequency is twice the AC power frequency!). However, this solution requires detecting the presence of flicker and estimating the flicker frequency. Various DFT based methods are proposed in the literature but they are usually based on the difference images produced from sequential frames, and are known to not work very well with single images (still frames captured by a digital camera).
I would like to know if there are any image processing methods which can be applied to a single image, which shows horizontal banding, to remove the horizontal bands through post-processing. In other words, horizontal and periodic intensity variations in the still image needs to be eliminated. A possible scenario is where the shutter speed can take any value (i.e. no sync of exposure time to light modulation frequency), and a still image with horizontal bands has already been recorded. I would like to take this image, apply some kind of filtering (possibly across columns) and get rid of the horizontal bands. In my literature search, I encountered only one such method which suggests using a variation of classical Gaussian filtering (with different Gaussian variances depending on bin intensities), but I could not yet find any other image processing solution. How else can horizontal bands possibly be eliminated through post-processing?
I would appreciate any references to the literature or suggestions for a possible solution.