### Histogram comparison with histogram equalization method
### To evaluate equalization

import cv2
import cv
import sys
import numpy as np
from matplotlib import pyplot as plt

def generate_histogram(img):
	hist,bins = np.histogram(img.flatten(),256,[0,256])
	
	#cumulative distribution function calculation
	cdf = hist.cumsum()
	cdf_normalized = cdf *hist.max()/ cdf.max() # this line not necessary.	
	plt.plot(cdf_normalized, color = 'b')
	plt.hist(img.flatten(),256,[0,256], color = 'r')
	plt.xlim([0,256])
	plt.legend(('cdf','histograma'), loc = 'upper left')
	plt.show()
	
	return hist



def main():
	imagePath = "img.jpg"
	
	img = cv2.imread(imagePath)
	gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
	
	generate_histogram(gray)
	
	cv2.imwrite("before.jpg", gray)

	gray = cv2.equalizeHist(gray)
	
	generate_histogram(gray)
	
	cv2.imwrite("after.jpg",gray)
	
	return 0

if __name__ == '__main__':
	main()