Mis a jour le 2025-04-14, 12:10

Histogramme des images

Histogramme :
  • hist = cv2.calcHist([img], [0], None, [256], [0, 256]) : calcule l'histogramme de l'image dans le premier canal ([0]), avec 256 bins ([256]) et un range de 0 à 255 ([0, 256]). La valeur renvoyée est un array 256 x 1.
  • on peut calculer l'histogramme seulement sur une partie de l'image :
    mask = numpy.zeros(img.shape[:2], numpy.uint8)
    mask[0:10, 0:50] = 255
    maskedImg = cv2.bitwise_and(img, img, mask = mask)
    hist = cv2.calcHist([img], [0], mask, [256], [0, 255])
        
Exemple d'histogramme d'une image : hist = cv2.calcHist([img], [0], None, [256], [0, 256]) pyplot.plot(hist) pyplot.savefig('tmp.png') newImg = cv2.imread('tmp.png')
Egalisation d'une image :
  • newImg = cv2.equalizeHist(img) : équalization d'une image en niveau de gris (modification des niveaux de gris pour avoir un histogramme à peu près palat).
  • Contrast Limited Adaptive Histogram Equalization : permet de faire une équalization locale
Exemple d'égalisation : img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) newImg = cv2.equalizeHist(img)

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert