FreeAeon-Fractal

Python Toolkit for Multifractal Spectra, Fractal Dimensions, Lacunarity, and Fourier Spectra

Application Domains

Domain Applications Related Modules
Medical Imaging Tissue complexity, heterogeneity analysis Multifractal spectrum, fractal dimension
Materials Science Surface morphology, porous structure Fractal dimension, lacunarity
Financial Analysis Price fluctuations, risk assessment Series multifractal spectrum
Earth Sciences Terrain analysis, vegetation distribution Fractal dimension, lacunarity
Image Processing Texture classification, image segmentation All modules

Installation

pip install FreeAeon-Fractal

Requirements:

  • Python 3.6+
  • OpenCV (cv2) support

Feature Modules

Module Class Features Docs
Multifractal CFAImageMFS 2D image multifractal spectrum View
CFASeriesMFS 1D series multifractal spectrum View
Fractal Dimension CFAImageFD BC/DBC/SDBC methods View
Lacunarity CFAImageLAC Gliding/Non-overlapping modes View
Fourier Analysis CFAImageFourier Spectrum, filtering, reconstruction View
Image Utils CFAImage Blocking, binarization, ROI View
Visualization CFAVisual 1D/2D/3D point & image display View
Sample Gen CFASample Classic fractal patterns (IFS) View
GPU Accel *GPU versions 5-20x speedup View

Quick Start

Multifractal Spectrum of an Image

import cv2
import numpy as np
from FreeAeonFractal.FAImageMFS import CFAImageMFS

# Load image
rgb_image = cv2.imread('./images/face.png')
gray_image = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2GRAY)

# Multifractal analysis
MFS = CFAImageMFS(gray_image, q_list=np.linspace(-5, 5, 26))
df_mass, df_fit, df_spec = MFS.get_mfs()

# Visualize
MFS.plot(df_mass, df_fit, df_spec)

Fractal Dimensions of an Image

from FreeAeonFractal.FAImageFD import CFAImageFD
from FreeAeonFractal.FAImage import CFAImage

# Binarize
bin_image, threshold = CFAImage.otsu_binarize(gray_image)

# Calculate fractal dimensions
fd_bc = CFAImageFD(bin_image).get_bc_fd()
fd_dbc = CFAImageFD(gray_image).get_dbc_fd()
fd_sdbc = CFAImageFD(gray_image).get_sdbc_fd()

# Visualize (note: new API includes gray_image parameter)
CFAImageFD.plot(rgb_image, gray_image, bin_image, fd_bc, fd_dbc, fd_sdbc)

Multifractal Spectrum of a Time Series

from FreeAeonFractal.FASeriesMFS import CFASeriesMFS

# Generate random walk
x = np.cumsum(np.random.randn(5000))

# Multifractal analysis
mfs = CFASeriesMFS(x, q_list=np.linspace(-5, 5, 21))
df_mfs = mfs.get_mfs()

# Visualize
mfs.plot(df_mfs)

Documentation Navigation

Access detailed documentation for each module: