应用场景
- 生态学:量化栖息地破碎化和间隙分布
- 材料科学:表征多孔结构和内部几何形态
- 医学图像:分析组织均匀性和病变分布
- 城市规划:研究土地利用的空间分布模式
使用示例
基础用法
import cv2
from FreeAeonFractal.FAImageLAC import CFAImageLAC
from FreeAeonFractal.FAImage import CFAImage
gray_image = cv2.imread('./images/fractal.png', cv2.IMREAD_GRAYSCALE)
bin_image, threshold = CFAImage.otsu_binarize(gray_image)
calc = CFAImageLAC(bin_image, partition_mode="gliding")
lac_result = calc.get_lacunarity(use_binary_mass=True, include_zero=True)
fit_result = calc.fit_lacunarity(lac_result)
print("Lambda(r):", lac_result['lacunarity'])
print("斜率 (beta):", fit_result['slope'])
calc.plot(lac_result, fit_result)
GPU加速版本
from FreeAeonFractal.FAImageLACGPU import CFAImageLACGPU
calc = CFAImageLACGPU(bin_image, device='cuda')
lac_result = calc.get_lacunarity()
批量处理
import glob, cv2
from FreeAeonFractal.FAImageLAC import CFAImageLAC
images = [cv2.imread(f, cv2.IMREAD_GRAYSCALE) for f in glob.glob('./images/*.png')]
batch_results = CFAImageLAC.get_batch_lacunarity(
images, partition_mode="gliding", use_binary_mass=True)
batch_fits = CFAImageLAC.fit_batch_lacunarity(batch_results)
for fit in batch_fits:
print("斜率:", fit['slope'])
类说明
CFAImageLAC
初始化参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
image | numpy.ndarray | 必填 | 2D单通道图像 |
max_size | int | None | 最大盒子尺寸 |
max_scales | int | 100 | 目标尺度数量 |
scales_mode | str | "powers" | "powers"(2,4,8,...)或"logspace" |
partition_mode | str | "gliding" | "gliding" 或 "non-overlapping" |
get_lacunarity(corp_type=-1, use_binary_mass=False, include_zero=True)
计算Λ(r)。公式:Λ(r) = E[M²] / E[M]²。返回 dict:scales, lacunarity, mass_stats
fit_lacunarity(lac_result, transform="log", fit_range=None)
对数-对数回归拟合。transform="log":斜率=−β。
get_batch_lacunarity / fit_batch_lacunarity [静态]
批量处理,同形状gliding模式下向量化计算。
算法说明
Λ(r) = E[M²] / E[M]² = 1 + Var(M) / Mean(M)²
# 滑动盒 — 积分图像
M(y, x) = S[y+r, x+r] - S[y, x+r] - S[y+r, x] + S[y, x]
# 自相似分形标度律
Λ(r) ~ r^{−β} 其中 β = D − E
重要说明
- "gliding"统计上更稳健,通过积分图像保持高效;"non-overlapping"适合需要样本独立性的场景
use_binary_mass=True用于经典二值空隙度(Allain & Cloitre 1991)- Λ=1表示完全均匀;Λ>1表示存在空隙和聚集