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:
# 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],,None,,[0,256]) # Plot the histogram and display plt.plot(histr) plt.show()