Here you can read an overview of the different image enhancement techniques available, the parameters they require, and download the programs if desired. To download source codes for all the techniques, as well as the explanatory documents and the sample image, click the button below.

Click here to return to the Enhancement Facility.

We provide a more in-depth description of the enhancement techniques in this document.

For a tutorial on how to use the Facility, click here.

To download the image used in the tutorial, click the button below.

**Division by Azimuthal Average: **
Division by Azimuthal Average converts the input image into polar coordinates so each horizontal row in the polar
representation located at a given radial distance from the nucleus represents different azimuths of the original image. It then finds
the average value of all azimuths for a given radial distance, excluding outliers, and divides each azimuthal value by that
average. This helps to emphasize azimuthal changes for a given radius that can be hard to identify in the original
brightness distribution. However, because each radius is dealt with separately, values in different radii of the
enhanced image should not be relied upon for comparisons.

To download the executable or the source code for the Division by Azimuthal Average technique, click the appropriate button below.

**Division by Azimuthal Median: **
Division by Azimuthal Median is very similar to Division by Azimuthal Average. It converts the input image to polar
coordinates so each horizontal row located at a given radial distance from the nucleus represents different azimuths of the original
image. It then finds the median value of all azimuths for a given row and divides each azimuthal value by that
median. Because the median is less affected by outliers than the average, this process does not exclude outliers.
This helps to emphasize azimuthal changes for a given radius that can be hard to identify in the original brightness
distribution, as well as deal with images with many stars, cosmic rays, or dead pixels that may skew the average, even
after excluding outliers. However, because each radius is dealt with separately, values in different radii of the
enhanced image should not be relied upon for comparisions.

To download the executable or the source code for the Division by Azimuthal Median technique, click the appropriate button below.

**Azimuthal Renormalization: **
Azimuthal Renormalization adjusts the azimuthal values for a given radius to be within a certain range. It first
converts the input image to polar coordinates so each horizontal row represents a given radial distance from the nucleus of
the original image. It then finds the minimum and maximum value for each radius, excluding outliers, and adjusts
each value of the azimuth based on the respective minimum and maximum values.

To download the executable or the source code for the Azimuthal Renormalization technique, click the appropriate button below.

**Division by 1/ρ: **
Division by 1/ρ adjusts the values of each pixel based on its distance from the optocenter. The idea is that
values closer to the optocenter are brighter than those further away, and by multiplying each value by its distance,
it compensates for the radial fall-off of brightness. This technique is more appropriate for dust (continuum) images,
but not for gas images.

To download the executable or the source code for the Division by 1/ρ technique, click the appropriate button below.

**Radially Variable Spatial Filtering: **
Radially variable spatial filtering adjusts the value of each pixel based on the values of 8 pixels in a square around
it, referred to as the kernel: those directly above, below, and on either side, and the corners. The size of the
kernel used to choose these pixels increases as the center pixel moves further away from the nucleus/optocenter.
Put precisely, the distance from the center pixel to an edge pixel is *A* + *B* * ρ^{N}, where
A, B, and N are the values that define the respective kernels, and ρ is the distance from the kernel to the nucleus/optocenter.
This behavior of the kernel allows one to better enhance features that are far from the nucleus/optocenter.

**The Radially Variable Spatial Filtering Mosaic** accepts two values for each kernel term-A, B, and N-and applies
the radially variable spatial filtering algorithm eight times using each combination of kernel values. This is useful to test
out a variety of kernel values, but creating the mosaic takes a signficantly longer time than the other options.

To download the executable or the source code for the Radially Variable Spatial Filtering technique, click the appropriate button below.