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()
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()