Given an image as input, how do we get the corresponding histogram using OpenCV? First, let us take a look at what a histogram is, then let us take a look at how to create one given an image.
What is a Histogram?
A histogram is another way of looking at an image. It is a graph that shows pixel brightness values on the x-axis (e.g. 0 [black] to 255 [white] for grayscale images) and the corresponding number (i.e. frequency) of pixels (for each brightness value) on the y-axis.
How to Create an Image Histogram Using OpenCV
There are two links I particularly like that show how to create the image histogram given an input image.
I like these tutorials because they lead the reader through all the essentials of how to find and analyze image histograms, step-by-step. This process boils down to the following code:
1 2 3 4 5 6 7 8 9 10 11 12 13 | # Import the required libraries import cv2 # Open CV from matplotlib import pyplot as plt #Matplotlib for plotting # Read the input image img = cv2.imread( 'example.jpg' , 0 ) # Calculate the frequency of pixels in the brightness range 0 - 255 histr = cv2.calcHist([img],[ 0 ], None ,[ 256 ],[ 0 , 256 ]) # Plot the histogram and display plt.plot(histr) plt.show() |