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.
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.
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()
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 ?
Partager