Bonjour,

Le but de mon programme étant, à partir d'une image en noir/blanc, de relever les pixels les plus foncés dans divers emplacement de l'image.
J'ai dans un premier temps fait quelque chose qui me permet d'obtenir les pixels les plus foncés de chaque ligne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import matplotlib.pyplot as plt
import matplotlib.image as mim
 
monimage=mim.imread('a.png')
 
def empreinte(monimage):
    l,c=monimage.shape[0],monimage.shape[1]
    L=[]
    for i in range(l):
        a=(monimage[:,:,0][i])
#a est donc la liste correspond à la couleur des pixels de la ligne i
        L.append(np.argmin(a))
    X=[j for j in range (l)]
    print (L)
    plt.scatter(L,X)
    plt.show()
Etant débutant j'imagine qu'il est loin d'être épuré, si vous avez des suggestions pour améliorer sa lisibilité je suis pas contre.


Néanmoins, je cherche maintenant à faire la même chose, pas sur juste chaque ligne, mais sur un domaine d'un quadrillage. En gros, je cherche à diviser une image de départ en n*m petits images carrés et de ne relever le pixel le plus foncé que dans chacun de ses petits images. A part créer le quadrillage "à la main" à l'aide de boucles et en mettant les points d'un même domaine dans une même liste pour pouvoir y appliquer la fonction précédente et enfin réarranger les indices, je ne vois pas comment je pourrais faire ça, surtout que ça va faire beaucoup de lignes pour rien. Auriez-vous une idée, une piste vers une meilleure solution ?