je cherche à coder en Python une fonction qui permettrait de quantifier une image (matrice 2D avec numpy).
Contraintes :
• Quantification sur "n" niveaux en découpant l'histogramme de l'image en "n" classes d'effectifs comparables
• attribuer la moyenne à chaque classe.
J'ai déjà codé une quantification à pas constant :
def quantify1(i,n):
q=zeros((i.shape[0],i.shape[1]))
for k in range(i.shape[0]):
for l in range(i.shape[1]):
q[k,l]= 255/n*int(round(i[k,l]*(n/255)))
return q
Qui fonctionne bien.
Mon idée : parcourir l'histogramme (abscisses) et avoir un seuil... empiler les pixels dans des "boîtes" et une fois le seuil dépassé, passer à l'autre classe.
On conserve les bornes pour ensuite faire une moyenne entre chaque bornes...
Cependant je ne m'en sort pas avec cet algo. Pouvez-vous m'aider ? Ci-dessous l'algo de l'histogramme :
def histogramme(i):
histo = np.zeros(256, int)
for i in range(0,i.shape[0]):
for j in range(0,i.shape[1]):
histo[int(round(y[i,j]))]+=1
return(histo)
Merci d'avance !
Traitement d'image
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.