Calcul_dimension_fractale par dossier

This commit is contained in:
Paul-Corbalan 2020-04-08 17:36:09 +02:00
parent 94b6ef9528
commit cbc73ff9b5
2 changed files with 103 additions and 2 deletions

View File

@ -1,10 +1,11 @@
import os.path import os.path
import sys import sys
import glob
import numpy as np import numpy as np
import math import math
def Import_dessinBitmap(file): def Import_dessinBitmap(file):
array = np.load(file + '.npy') array = np.load(file)
return array.tolist() return array.tolist()
# return array # 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): if y[i2][j2] == 1.0 and i2 != (N1-1) and not(Trouver):
dim += 1 dim += 1
Trouver = True Trouver = True
return Dim(dim, N1//L) 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()

View File

@ -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()