This is an original method to remove radial noise in an image, assuming the light radiates from a punctual source (a star), inside or outside the image. The image is sliced in small overlapping sub-windows. If the sub-windows are small enough, the noise can be approximated by quasi parallel lines in the window. The direction of the lines is computed from the coordinate of the punctual source, for each sub window. Then, under the above assumptions, the noise can be eliminated by the classical & well documented Tau-p (Radon transform) denoise in each window. The sub-windows are then reassembled to form the denoised image.
The code is open source and distributed on Github.
The Radon transform is a well established integral transform which maps the space (x, y) domain into a new domain, the radon domain (tau, p). See Wikipedia: Radon transform, Hough transform, Sonogram, Tau p transform.
The Radon transform collapses (focuses) linear event into points. After Radon transform:
- The linear noise and the signal are disjoint (they map in different areas of the Radon plane).
- The noise is collapsed (concentrated in a small area of the Radon plane). Ideally the noise collapse into a single point.
Because of A and B, the noise can be muted (zeroed out) in the radon plane without hurting the data. After inverse radon transform, the data is back to the space plane, and the noise has been removed. As the noise is not stationary in the space plane, a windowing strategy is implemented: the data is split in a mosaic. Each tile of the mosaic is small enough that the noise characteristics are stationary within the tile and the radon strategy can be implemented. All the tiles are then merged back together using tapers and a bilinear weights scheme.
The code attached is written in python.
• Module astropy.io handles fits format (works on both mono and RGB) for input and output
• Skimage is used for the radon and inverse radon transform.
Apply the radon denoise:
• On delinearized data.
• After star field removal (or ultimately after star mask, not implemented at this point).
The key parameters are the coordinate of the star causing the radiating linear noise. Those coordinates are expressed in pixels. Pixel values can be negative or bigger than the size of the image when the star is out of the image. This star position is used to calculate the angle of the light streaks to eliminate at the center of each tile. This defines the position of the mute for each tile in the radon domain. This needs to be right. I usually use, in Pixinsight: synthetic star field generation of a wide field of the area, including the bright star, plate solve and mosaic merge of the actual image and synthetic star field to determine this.
Other less important parameters: number of tiles in x and y, tile overlap.
Above are the tapers available for the windowing strategy.