#Code visant à associer à chaque pixel d'une image une température lu sur le côté droit de l'image. # !!!! Le code fonctionne mais reste très long à se lancer : l'image fait 721*564 = 406 644 actions à faire, ça prend pas mal de temps, compter bien 5 minutes pour le traitement complet #!! N'esssayer pas non plus d'afficher le tableau complet des températures # import os # ##Il faut créer un dossier carte_tipe ou modifier le répertoire de travail # # os.chdir("C:/SWSetup/carte tipe") # from skimage import io # from skimage import color # # # image= io.imread('temperature6.png') #image devient un tableau de x lignes et y colonnes # # io.imshow(image) # # # #compte les couleurs de l'échelle # def count_color(image):#ON COMPTE LE NOMBRE DE COULEUR DIFFERENTE = 69 # count=1 # color=list(image[3][594]) # for i in range (3,len(image)): #On parcourt toutes les lignes # if color != list(image[i][594]): #Si la couleur suivante est différente de la précédente : # count+=1 # color=list(image[i][594]) # return count # # ###PARTIE TEMPERATURE # def echelle1(pixel):#à tous chiffre compris entre 0 et 721 lui associe une valeur de température sur l'échelleimport os # ##Il faut créer un dossier carte_tipe ou modifier le répertoire de travail # # os.chdir("C:\SWSetup\carte tipe") # from skimage import io # from skimage import color # # # image= io.imread('temperature6.png') #image devient un tableau de x lignes et y colonnes # # io.imshow(image) # # # # #compte les couleurs de l'échelle # def count_color(image):#ON COMPTE LE NOMBRE DE COULEUR DIFFERENTE = 69 # count=1 # color=list(image[3][594]) # for i i # #On a une fonction du type y=ax+b avec a= -0.0264623955 et b= 25,07547 # y=(-0.0264623955)*pixel+25.07547 # return(y) # # #FONCTION QUI ASSOCIE A TOUTE COULEURS UNE TEMPERATURE # def coul_temp(image,couleur): # A toute couleur de la carte, on lui associe une temperature, necessité de faire une moyenne sur chaque couleurs # count=0 # somme=0 # for i in range (0,len(image)): #On parcourt toutes les lignes # if couleur == list(image[i][594]): #Si la couleur est égale à la couleur pointée : # count+=1 # somme+=echelle1(i) # moyenne=somme/count # return moyenne # # # #Fonction qui renvoie la liste des couleurs sur l'échelle # def liste_couleur(image): #-> 68 # liste=[] # color=list(image[0][594]) # for i in range (0,len(image)): #On parcourt toutes les lignes # if color != list(image[i][594]): #Si la couleur suivante est différente de la précédente : # liste.append(color) # color=list(image[i][594]) # return liste # # ###PARTIE SALINITE # # def echelle_sal(pixel):#A tout chiffre compris entre 0 et 721, lui associer une valeur de la salinité # y=-(5/721)*pixel+39.25 # return(y) # # #FONCTION QUI ASSOCIE A TOUTE COULEURS UNE SALINITE # def coul_sal(image,couleur): # A toute couleur de la carte, on lui associe une temperature, necessité de faire une moyenne sur chaque couleurs # count=0 # somme=0 # for i in range (0,len(image)): #On parcourt toutes les lignes # if couleur == list(image[i][594]): #Si la couleur est égale à la couleur pointée : # count+=1 # somme+=echelle_sal(i) # moyenne=somme/count # return moyenne # # # # # # # #Fonction qui crée un tableau vide de la même taille que l'image # def liste_vide(image): # tableau=[] # for i in range (len(image)): # tableau.append([]) # # return tableau # # # image2=image.copy() # count=0 # lis_couleur=liste_couleur(image2) # # tableau_temp=liste_vide(image2)#On crée un tableau vide contenant le même nombre de ligne que l'image : ce tableau contiendra toutes les températures # # # # ##On parcourt toute l'image pour associer à chaque pixel une température (ça prend du temps) # for i in range(len(image2)): # for j in range(564): # bo=False # for k in range(len(lis_couleur)): # if list(image2[i][j])==lis_couleur[k]: # bo=True # if bo == False: # image2[i][j]=[255,255,255] # tableau_temp[i].append(0)##Si la couleur n'est pas sur l'échelle on lui associe la température 0 # elif bo == True: # tableau_temp[i].append(coul_temp(image2,list(image2[i][j]))) # # ####On parcout l'ensemble de la deuxième carte pour associer à chaque pixel une salinité # image_sal = io.imread('salinite5.png') #image_sal devient un tableau de x lignes et y colonnes # tableau_sal=liste_vide(image_sal)#On crée un tableau vide contenant le même nombre de ligne que l'image : ce tableau contiendra toutes les températures # image_sal2=image_sal.copy() # count=0 # lis_couleur=liste_couleur(image_sal2) # # for i in range(len(image_sal2)): # for j in range(564): # bo=False # for k in range(len(lis_couleur)): # if list(image_sal2[i][j])==lis_couleur[k]: # # bo=True # if bo == False: # image_sal2[i][j]=[255,255,255] # tableau_sal[i].append(0)##Si la couleur n'est pas sur l'échelle on lui associe la salinité 0 # elif bo == True: # tableau_sal[i].append(coul_sal(image_sal2,list(image_sal2[i][j]))) # #