# Image Equalization

## Photogrammetry-1

Dec 30, 2023

First of all, take the maximum intensity value in the image:

`max_int_val = np.max(image)`

Calculate the number of bits:

`bits = int(math.log2(max_int_val)) + 1`

Calculate the number of bins:

`bins = 2**bits`

Calculate Histogram:

`histogram = np.zeros((bins,1))`

for i in range(bins):

histogram[i] = len(image[image == i])

Calculate the sum of histogram:

`sum_hist = np.sum(histogram)`

Calculate probability density function:

` pdf = np.zeros((bins,1))`

for i in range(bins):

pdf[i] = histogram[i]/sum_hist

Calculate cumulative distribution function:

` cdf = np.zeros((bins,1))`

for i in range(bins):

if i == 0:

cdf[i] = pdf[i]

else:

cdf[i] = cdf[i-1] + pdf[i]

Calculate equalized histogram:

`equalized_hist = cdf*(bins-1)`

Apply equalized histogram to the image:

` for i in range(bins):`

image[image == i] = equalized_hist[i]

That’s it for now. See you later.