【发布时间】:2016-07-21 05:41:57
【问题描述】:
这种基于希尔伯特曲线的图像扫描方法。曲线看起来像(从 1 到 6 阶):
它可以用于图像扫描。因此,例如,我的三阶曲线代码是:
Hilbert=[C(1,1) C(1,2) C(2,2) C(2,1) C(3,1) C(4,1) C(4,2) C(3,2) C(3,3) C(4,3) C(4,4) C(3,4)...
C(2,4) C(2,3) C(1,3) C(1,4) C(1,5) C(2,5) C(2,6) C(1,6) C(1,7) C(1,8) C(2,8) C(2,7)...
C(3,7) C(3,8) C(4,8) C(4,7) C(4,6) C(3,6) C(3,5) C(4,5) C(5,5) C(6,5) C(6,6) C(5,6)...
C(5,7) C(5,8) C(6,8) C(6,7) C(7,7) C(7,8) C(8,8) C(8,7) C(8,6) C(7,6) C(7,5) C(8,5)...
C(8,4) C(8,3) C(7,3) C(7,4) C(6,4) C(5,4) C(5,3) C(6,3) C(6,2) C(5,2) C(5,1) C(6,1)...
C(7,1) C(7,2) C(8,2) C(8,1)];
而且它工作得很快。我为 8 阶和 9 阶曲线制作了相同的函数,但它的工作速度非常非常慢。 9阶,也许,永远不会结束。至少,我没有耐心等待结束 - 2小时后我刚刚关闭了程序。但 7 阶曲线运行 15 秒。怎么了?我可以做同样的事情,但更快吗?是的,程序需要读取 512 * 512 个数组元素,但让它更快也不是不可能。
那么,我到底需要什么 - 我有数组元素的坐标,它们按照应该读取的顺序排列。我需要可接受的时间来读取它们并写入新数组。怎么做?
附言英语对我来说仍然很难,如果有不清楚的地方 - 请问我。
【问题讨论】:
-
我认为你有一个错字/错误,第三行第四值应该是
C(4,7)而不是C(8,7)。问题是,你如何生成分形?你的代码在哪里? -
问题是 - 我可能在一年前用 c++ 程序生成了它。没关系,(8,7) 是我的错误。
标签: performance matlab fractals image-scanner hilbert-curve