Visualizar histograma

Es posible visualizar el histograma de una imagen de la siguiente manera:

import matplotlib.pyplot as plt
import cv2

hist = cv2.calcHist([imagen],[0],None,[256],[0,256])
plt.plot(hist)
plt.show()

Adicionalmente, es posible calcularlo usando numpy:

import matplotlib.pyplot as plt
import numpy as np

def show_histogram(image, values=256):
  histogram, bin_edges = np.histogram(image, bins=values, range=(0, values-1))
  fig, ax = plt.subplots()
  ax.set_title("Grayscale Histogram")
  ax.set_xlabel("grayscale value")
  ax.set_ylabel("pixel count")
  ax.set_xlim([0.0, values-1])

  ax.plot(bin_edges[0:-1], histogram)
  plt.show()

Note que en ambos casos se asume por defecto una imagen de escala de grises con 256 posibles valores. Sin embargo, es fácilmente modificable para usar diferentes rangos de valores y para visualizar los canales de una imagen en RGB.