From cbc73ff9b5982efa645043794e491aab861cdb8e Mon Sep 17 00:00:00 2001 From: Paul-Corbalan Date: Wed, 8 Apr 2020 17:36:09 +0200 Subject: [PATCH] Calcul_dimension_fractale par dossier --- .../Calcul_dimension_fractale.py | 33 ++++++++- .../Calcul_dimension_fractale_public.py | 72 +++++++++++++++++++ 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 Calcul_dimension_fractale/Public/Calcul_dimension_fractale_public.py diff --git a/Calcul_dimension_fractale/Calcul_dimension_fractale.py b/Calcul_dimension_fractale/Calcul_dimension_fractale.py index 5d64069..af85140 100644 --- a/Calcul_dimension_fractale/Calcul_dimension_fractale.py +++ b/Calcul_dimension_fractale/Calcul_dimension_fractale.py @@ -1,10 +1,11 @@ import os.path import sys +import glob import numpy as np import math def Import_dessinBitmap(file): - array = np.load(file + '.npy') + array = np.load(file) return array.tolist() # return array @@ -40,4 +41,32 @@ def Calcul_dim(y, n=0): if y[i2][j2] == 1.0 and i2 != (N1-1) and not(Trouver): dim += 1 Trouver = True - return Dim(dim, N1//L) \ No newline at end of file + return Dim(dim, N1//L) + +def main(folder=".\\", n=0): + 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) + +main() +# input() \ No newline at end of file diff --git a/Calcul_dimension_fractale/Public/Calcul_dimension_fractale_public.py b/Calcul_dimension_fractale/Public/Calcul_dimension_fractale_public.py new file mode 100644 index 0000000..4015cbb --- /dev/null +++ b/Calcul_dimension_fractale/Public/Calcul_dimension_fractale_public.py @@ -0,0 +1,72 @@ +import os.path +import sys +import glob +import numpy as np +import math + +def Import_dessinBitmap(file): + array = np.load(file) + 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 + return Dim(dim, N1//L) + +def main(folder=".\\", n=0): + 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) + +main() +input() \ No newline at end of file