Projet_Modelisation_mathema.../Calcul_dimension_fractale/Calcul_dimension_fractale.py

84 lines
2.0 KiB
Python
Raw Permalink Normal View History

2020-04-08 14:20:16 +00:00
import os.path
import sys
2020-04-08 15:36:09 +00:00
import glob
2020-04-08 14:20:16 +00:00
import numpy as np
import math
def Import_dessinBitmap(file):
2020-04-08 15:36:09 +00:00
array = np.load(file)
2020-04-08 14:20:16 +00:00
return array.tolist()
# return array
def Afficher_Array(y):
space = ' ' # <--- Pour modifier les espaces
N1=len(y)
for i in range(N1):
N2=len(y[i])
for j in range(N2):
if y[i][j]:
print(str(y[i][j]), end=space)
else:
print(' ', end=space)
print("")
def Dim(Count, Size):
return np.log(Count) / np.log(Size)
def Calcul_dim(y, n=0):
L = 2 ** n
dim = 1
N1 = len(y)
for i in range(0, N1, L):
N2 = len(y[i])
for j in range(0, N2, L):
Trouver = False
for i2 in range(i, i+L):
for j2 in range(j, j+L):
if y[i2][j2] == 1.0 and i2 != (N1-1) and not(Trouver):
dim += 1
Trouver = True
2020-04-08 15:36:09 +00:00
return Dim(dim, N1//L)
2020-04-08 16:08:08 +00:00
def Calcul_Dossier(folder=".\\", n=0):
2020-04-08 15:36:09 +00:00
npy_list = [f for f in glob.glob(folder + "*.npy")]
S=[]
for i in range(len(npy_list)):
file=npy_list[i]
y = Import_dessinBitmap(file)
dim = Calcul_dim(y, n)
print(str(i+1) + "\t" + file + " :\t" + str(dim))
S.append(dim)
print("\n---")
N = len(S)
Moyenne = 0
Ecart = 0
for i in S:
Moyenne += i
Ecart += i ** 2
Moyenne = Moyenne / N
Ecart = math.sqrt((Ecart / N - Moyenne ** 2) * N / (N - 1))
print("Moyenne :\t\t" + str(Moyenne))
print("Ecart type empirique :\t" + str(Ecart))
return (Moyenne, Ecart)
2020-04-08 16:08:08 +00:00
def main(folder=".", n=0):
# folder_list = [f for f in os.listdir(folder) if os.path.isfile(os.path.join(folder, d))]
folder_list = [f for f in glob.glob(folder + "\\*\\")]
Resultat = []
for dossier in folder_list:
print("\t--- " + dossier + " ---")
Resultat.append(Calcul_Dossier(dossier))
print("")
print("")
return Resultat
main("..\\Image")
2020-04-08 15:36:09 +00:00
# input()