【问题标题】:fractal microscope simulator分形显微镜模拟器
【发布时间】:2011-03-08 23:28:34
【问题描述】:

我已经完成了用于控制成像硬件(例如显微镜)的软件的工作,这些软件有时很难花时间使用。这意味着很难测试需要访问仪器的新/不同算法。我想创建一种可用于某些测试目的的合成仪器,并且我正在考虑使用某种分形图像生成来创建合成图像。关键是能够以某种确定的方式在许多不同的“放大倍数”和位置生成特征。这是因为一些正在测试的算法可能需要平移/缩放和重新定位以前“成像”的区域。然后,我可以在这些基础图像上应用任何合适的仪器“缺陷”(焦点、噪声、饱和度等)。

对于如何为基本图像选择/实施良好的分形算法,我有点不知所措。任何帮助,将不胜感激。最好具有以下品质:

  1. 快速渲染新的图像区域。
  2. 在尽可能多的位置和规模上提供相当广泛的“功能”覆盖范围。
  3. 具有确定性(但从随机起始参数初始化)。
  4. 能够调整以使图像看起来更像“真实”图像。

第 2 项很重要,例如具有大的平滑/空白区域的 mandelbrot 集可能并不好,因为控制合成范围的软件可能属于这些区域之一。

到目前为止,我一直在考虑使用类似 mandelbrot 的东西,但随机移动/旋转/缩放和合并两个或更多分形集以获得更完整的“特征”覆盖。

我还看到了分形火焰算法的图像,它们似乎生成的图像可能有用(而且看起来很漂亮)。

最后,我曾想过使用某种暂停的粒子模拟运行来生成更像细胞的图像(我当前的成像目标),但我不确定这种方法是否适用于其他要求。

编辑: @Jeffrey - 所以听起来某种地形生成可能是要走的路,只要我完全控制 PSRNG。也许我可以使用一些存储的初始种子 + x 位置 + y 位置来生成我的随机数?但是我不确定如何在不同尺度上一致地生成地形,除了如你所提到的,以最粗的尺度创建基础地形,并且在某些预先确定的“放大倍数”下向这个基础添加新的确定性伪随机变化.我还必须小心何时生成下一级地形,因为如果我过于激进,我必须适当地生成和整合结果以在更粗略的级别上显示......这就是我最初的原因倾向于更“传统”的分形,因为这种来自更精细尺度的整合将被更隐式地处理(我认为)。

【问题讨论】:

  • 我对你想要达到的目标不是很有信心。您想验证您的显微镜软件还是制作“虚拟”显微镜用于教学/演示?
  • 我想在使用宝贵的实际仪器时间来确保它在 IRL 工作之前,将软件算法评估到 X 程度的确定性,比如说 90%。在修改基础图像以模拟显微镜效果时,例如失焦、不精确的运动、相机噪音,我更加自信,因为我以前处理过所有这些。

标签: imaging fractals


【解决方案1】:

分形地形创建算法背后的想法是分别构建每个比例的图像。对于景观来说很简单:只需制作一个高度值的小数组,然后随机设置它们。然后将其放大到一个更大的数组,对这些值进行平均以使轮廓平滑,然后将少量随机量添加到这些值中。然后按比例放大等等。原来的小凹凸都变成了山,里面布满了复杂的地形。

不过,这里提出的问题有两个特别的困难。首先,您不想存储任何这些值,因为它可能会很大。其次,每个尺度的特征与其他尺度的特征是不同的。

这些问题并非不可克服。

基本上,您会将图像划分为网格,并使用确定性伪随机数确定网格中每个正方形的关键特征。例如,每个方格可以有一定密度的细胞类型。

在下一个放大级别,将每个正方形细分为另一个网格,在网格上应用基于包含正方形及其周围正方形的值的值梯度。然后将伪随机变化应用于包含正方形网格坐标的种子。对于随机种子,无论图像在何处裁剪,始终使用所考虑的细分的直接包含正方形的坐标,以确保在多次运行中正确重新创建它。

在一定的放大率下,随机值从粒子类型的密度到粒子位置。然后对于每个粒子,都有特定的特征。然后是这些功能上的功能。

尽管需要任意左/右和上/下滚动,但每次移动帧时都必须计算当前场景上方所有放大级别的图像,以确保包含所有必要的特征。这样,图像可以从一个单元格滚动到另一个单元格,而不会失去一致性。部分模拟可用于确保单元或单元特征不重叠。这可以以可重复的、确定性的方式完成。

并且不要忘记在添加随机变化之前基于更高级别的周围正方形的平均值应用平滑梯度。否则,突然的变化会使方块本身出现在图像中!

这个答案有点漫无边际,可能令人困惑,但最好我现在可以解释它。希望对你有帮助!

【讨论】:

  • 不,这很有帮助,它更接近我认为的一种可能的解决方案。你是对的,我想知道随机场景生成和存储结果是否是可行的方法......这可能取决于事情运行的时间(存储的数据集增长了多少),但更好的是存储用于伪随机场景生成器的种子,这样我就可以使用粒子模拟器之类的东西来创建更“逼真”的图像,并能够在飞行中重新创建区域。
  • 关于快速粒子模拟中的粒子数量目前可行的任何想法?我目前看的图像类型是光学显微镜图像,一个完整的数据集可能有 400 万个细胞。那么,如今 400 万个点的快速(就时间尺度而言)n 体模拟“快”了吗?
  • @user476615 - 模拟 400 万个粒子不会很快。如果整个图像上的粒子密度不会有任何中断,那么如果不参考整个系统中所有其他粒子的位置,就无法计算位置。也许可以预先计算和存储单元位置。然后只会动态计算小特征,而这些只能使用本地较小的数据集来完成。
猜你喜欢
  • 2023-01-31
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 2021-06-05
相关资源
最近更新 更多