def contrasteExtension(pix,largeur,hauteur):
  """etend l'histogramme de facon a ce que les couleurs aillent de
     0 a 255
  """
  milieu=127

  histoOldRGB=createHistogrammeRGB(pix,largeur,hauteur)
  imHistoOldRGB=createImageHistogrammeRGB(histoOldRGB)
  imHistoOldRGB.show()

  imin=minIntensite(histoOldRGB[0])
  imax=maxIntensite(histoOldRGB[0])
  for y in range(hauteur):
    for x in range(largeur):
      old=pix[x,y][0]
      rapport=(old-imin)/(imax-imin)
      new=rapport*255
      new=max(0,min(round(new),255))
      pix[x,y]=(new,pix[x,y][1],pix[x,y][2])

  imin=minIntensite(histoOldRGB[1])
  imax=maxIntensite(histoOldRGB[1])
  for y in range(hauteur):
    for x in range(largeur):
      old=pix[x,y][1]
      rapport=(old-imin)/(imax-imin)
      new=rapport*255
      new=max(0,min(round(new),255))
      pix[x,y]=(pix[x,y][0],new,pix[x,y][2])

  imin=minIntensite(histoOldRGB[2])
  imax=maxIntensite(histoOldRGB[2])
  for y in range(hauteur):
    for x in range(largeur):
      old=pix[x,y][2]
      rapport=(old-imin)/(imax-imin)
      new=rapport*255
      new=max(0,min(round(new),255))
      pix[x,y]=(pix[x,y][0],pix[x,y][1],new)


  histoNewRGB=createHistogrammeRGB(pix,largeur,hauteur)
  imHistoNewRGB=createImageHistogrammeRGB(histoNewRGB)
  imHistoNewRGB.show()
Exemple #2
0
      if j>=len(l):break
      l[j]=couleur
    i+=b
    
  for y in range(hauteur):
    for x in range(largeur):
      pix[x,y]=(l[pix[x,y][0]],l[pix[x,y][1]],l[pix[x,y][2]])
#=============================================================== 
if __name__=="__main__":

  im=Image.open("dandelion.jpg")
  print(im.format, im.size, im.mode)
  #im=im.convert("L")
  pix=im.load()
  width=im.size[0]
  heigth=im.size[1]

  histo=createHistogrammeRGB(pix,width,heigth)
  im_histo=createImageHistogrammeRGB(histo)
  im.show()
  im_histo.show()

  for nb in (64,32,16,8,4,2):
    quantification(pix,width,heigth,nb)

    histo=createHistogrammeRGB(pix,width,heigth)
    im_histo=createImageHistogrammeRGB(histo)

    im.save("dandelion-NB=%d.jpg"%nb)
    im_histo.save("histoDandelion-NB=%d.jpg"%nb)
##  imHistoCumu.show()

  for y in range(hauteur):
    for x in range(largeur):
      p=round((histoCumu[pix[x,y][2]]*255)/(largeur*hauteur))
      pix[x,y]=(pix[x,y][0],pix[x,y][1],p)


#========================================================================
if __name__=="__main__":

  im=Image.open("oiseau.jpg")
  pix=im.load()
  width=im.size[0]
  heigth=im.size[1]

  histoOld=createHistogrammeRGB(pix,width,heigth)
  imHistoOld=createImageHistogrammeRGB(histoOld)
  imHistoOld.save("histoOiseau.jpg")
##  imHistoOld.show()
##  im.show()
  
  contrasteEtirement(pix,width,heigth)

  histoNew=createHistogrammeRGB(pix,width,heigth)
  imHistoNew=createImageHistogrammeRGB(histoNew)
  imHistoNew.save("histoOiseau-contrasteEtirement.jpg")
  im.save("oiseau-contrasteEtirement.jpg")
##  imHistoNew.show()
##  im.show()