Description
Introduction
Implement a histogram equalization function that can perform equalization on 8bit gray level image.
Approach
While encourage to use MATLAB my implementation was done with python and OpenCV A package that is useful for image and data processing. I used an Object Oriented approach and created a class for Intensity transformations. In the future, I hope to add more algorithms from homework and projects related to Intensity transformations in the file. I hope this will pay off in the future when it comes to studying for tests. Currently when the class is called the u must input an image. The constructor will then call the histogram equalization function and store the result. After the transformed image is created it is stored in the class object and retrieved using an accessor method. The functions can be called directly to perform transforms on the image. The user would need to set the image using the class and call the image using OpenCV.
Automated usage:
path = “my/image/path” img = cv2.imread(path) ixf =histogram_equalisor(img) new_img = ixf.get_img()
Manuel usage:
path = “my/image/path” img = cv2.imread(path)
x = histogram_equalisor()
x.set_image()
x.hist_eq()
new_img = x.get_img()
Experimental Results
High Contrast
Discussion
Low Contrast
Discussion
Light Contrast
Discussion
Dark Contrast
Discussion
The dark contrast image had the least desirable effect but after looking at the plot the equalizer tried its best with such few pixel intensities for distribution. The CDF has a very steep gradient early on causing the image brightness to look like it has been affected by an offset value rather than balancing the contrast.
Conclusion
The algorithm was tricky to implement but also very powerful for image contrast leveling. I appreciate the the probabilistic approach was used to determine the new intensity values.
Reviews
There are no reviews yet.