Hi Friends,

Do you want to draw a histogram for an image as below?

Drawing Histogram in OpenCV-Python

See the histogram for above image for RGB channels.

Drawing Histogram in OpenCV-Python

The code:


import cv2
	import numpy as np

	img = cv2.imread('zzzyj.jpg')
	h = np.zeros((300,256,3))

	bins = np.arange(256).reshape(256,1)
	color = [ (255,0,0),(0,255,0),(0,0,255) ]
	for ch, col in enumerate(color):
	    hist_item = cv2.calcHist([img],[ch],None,[256],[0,256])
	    cv2.normalize(hist_item,hist_item,0,255,cv2.NORM_MINMAX)
	    hist=np.int32(np.around(hist_item))
	    pts = np.column_stack((bins,hist))
	    cv2.polylines(h,[pts],False,col)

	h=np.flipud(h)

	cv2.imshow('colorhist',h)
	cv2.waitKey(0)
	

You can see the same code written using numpy functions on histogram here  : Drawing histogram in OpenCV- Python.

Don't forget to send your comments, doubts etc.

With Regards,
Abid Rahman K.