我有一些图像,我想要计算Minkowski/box count dimension以确定图像中的分形特征.这是2个示例图像:
10.JPG:
24.jpg:
我正在使用以下代码来计算分形维数:
import numpy as np
import scipy
def rgb2gray(rgb):
r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
return gray
def fractal_dimension(Z, threshold=0.9):
# Only for 2d image
assert(len(Z.shape) == 2)
# From https://github.com/rougier/numpy-100 (#87)
def boxcount(Z, k):
S = np.add.reduceat(
np.add.reduceat(Z, np.arange(0, Z.shape[0], k), axis=0),
np.arange(0, Z.shape[1], k), axis=1)
# We count non-empty (0) and non-full boxes (k*k)
return len(np.where((S > 0) & (S < k*k))[0])
# Transform Z into a binary array
Z = (Z < threshold)
# Minimal dimension o

本文探讨了如何使用Python计算Minkowski/Box Count Dimension以确定图像的分形特性。通过示例代码展示了从RGB图像转换为灰度图像并计算分形维数的过程,针对不同阈值对结果的影响进行了分析,指出选择合适的阈值对于获取准确的分形维数至关重要。最后,建议参考Michael F. Barnsley的《Fractals Everywhere》以深入了解分形理论。
最低0.47元/天 解锁文章
645

被折叠的 条评论
为什么被折叠?



