gpt4 book ai didi

image - 是否有一种算法可以确定图像是否是分形?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:24 25 4
gpt4 key购买 nike

我正在研究元胞自动机,其中一些显然会生成看起来像分形的图像,而另一些则不会。我不太清楚什么是分形,因为我认为可以拍摄任何图片并将其制作成动画,通过放大和绘制一些自相似的东西来欺骗观众。

所以,我的问题是:

1) 我如何区分分形和非分形,例如,为什么规则 0 不产生分形,比如说,我从一个像素开始并不断放大它的一个角,它看起来像一个正方形的角,我可以无限期地这样做,这不是分形吗?

2)判断CA生成的图片是否是分形的好算法是什么? (也许我需要查看不同比例的细胞颜色比例或类似的东西?)。

我对算法的看法:我们可以把图片看成一个二维网格,每一行都是一个字符串。让我们创建一个后缀树并插入每一行的所有子串,然后看看是否有很多重复的足够长的长度为 N 的字符串。这是一个好方法吗?

谢谢。

最佳答案

可能最快和最稳健的方法是计算图像的分形维数。考虑黑白图像。我们有原始的大图像,我们将从中计算所谓的 mipmap(一系列越来越小的图像)。在每一个中,我们将计算黑色像素的总数。如果我们在图像(或一些曲线)上只有一条线段,当我们将分辨率加倍时,它会大致加倍像素数,它对应于维度 1。

如果我们有一些实体(正方形、圆形、椭圆形等),当我们将分辨率加倍时,它的像素数将增加四倍,因此它是 2 维的。

分形具有分数维,通常为 1 到 2,但也有小于 1 的值(Kantor 尘埃)。

比如说,我们在最小的图像 (2x2) 上有 1 个黑色像素,在 4x4 上有 3 个像素,8x8 上有 7 个像素,16x16 上有 19 个像素,32x32 上有 50 个像素。如果我们有一些曲线,我们预计 32x32 上的像素比 2x2 多 16 倍 (32/2)。

如果我们有实体,我们预计 32x32 上的像素会增加 16^2 = 256 倍。但是我们有一些中间结果。我们有一个等式:

N = Norig * (Wcur/Worig) ^ FracDim,

在哪里- N 是当前分辨率下的黑色像素数,- Norig 是原始分辨率下的黑色像素数,- Wcur 是当前图像宽度,- Worig 是原始图像宽度- FracDim 是我们想要找到的分形维数。记录两个部分:

Log(N) = Log(Norig) + FracDim * Log(Wcur/Worig)

而且我们有像对 (Wcur; N) 这样的“实验数据”。通过 rms 方法(最适合)找到 FracDim,仅此而已。如果它离整数值太远,那么我们在图像上就会出现分形。

令人惊讶的是,这样的方法被用来确定纸上的签名是真实的还是伪造的。如果写得很快(通常情况下是合法的),墨水不会被纸张吸收那么多,但是当有人试图伪造签名时,这个过程会更长,所以墨水会被吸收很多。大放大倍数下的吸墨图像是分形的。微调后,它就像一个魅力。

关于image - 是否有一种算法可以确定图像是否是分形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35711435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com