I am trying to discover the fractal dimension of the image of the following dendrite that was obtained by SEM (scanning electron microscope) by the box-counting method (Python). I found this code on the Internet here. I tried to place the image to obtain the fractal dimension but it gave me 1.999872162725305, which does not coincide with the literature, as the literature says that usually the fractal dimensions of these structures must be below 1.80. The image found on the site as an example is the Sierpinski triangle whose fractal dimension is log (3)/log (2) and the code gives the right value, but the image has RGB colors and my SEM image is black and white. Is that the reason influencing the wrong result? How can I correct the code in order to obtain a fractal dimension below 1.80 as is supposed? Best regards.
import numpy as np import pylab as pl def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray image=rgb2gray(pl.imread("dendrite.png")) # finding all the non-zero pixels pixels= for i in range(image.shape): for j in range(image.shape): if image[i,j]>0: pixels.append((i,j)) Lx=image.shape Ly=image.shape print (Lx, Ly) pixels=pl.array(pixels) print (pixels.shape) # computing the fractal dimension #considering only scales in a logarithmic list scales=np.logspace(0.01, 1, num=10, endpoint=False, base=2) Ns= # looping over several scales for scale in scales: print ("======= Scale :",scale) # computing the histogram H, edges=np.histogramdd(pixels, bins=(np.arange(0,Lx,scale),np.arange(0,Ly,scale))) Ns.append(np.sum(H>0)) # linear fit, polynomial of degree 1 coeffs=np.polyfit(np.log(scales), np.log(Ns), 1) pl.plot(np.log(scales),np.log(Ns), 'o', mfc='none') pl.plot(np.log(scales), np.polyval(coeffs,np.log(scales))) pl.xlabel('log $\epsilon$') pl.ylabel('log N') pl.savefig('sierpinski_dimension.pdf') print ("The Hausdorff dimension is", -coeffs) #the fractal dimension is the OPPOSITE of the fitting coefficient np.savetxt("scaling.txt", list(zip(scales,Ns)))
SEM image (dendrite.png):