【问题标题】:Enhancement on Images stored as pyramids增强存储为金字塔的图像
【发布时间】:2012-03-29 04:49:10
【问题描述】:

如何将增强(或修改图像的任何操作)应用于以金字塔形式存储的图像,它是否首先应用于某个金字塔层(当前缩放级别),然后重新应用于不同的层如果用户放大或缩小,或者对整个金字塔一次性应用增强,或者是否有某种算法可以有效地将增强效果传播到其他金字塔层。

我想知道最好的方法是什么。

【问题讨论】:

  • 您的问题不清楚 - 您不知道如何设计/实现哪个部分?
  • 我不熟悉使用图像金字塔的概念。我的疑问是在实施和设计方面。据我了解,图像金字塔的每一层只是原始图像的缩小(重新采样)形式。因此,如果用户应用增强功能,那么如何确保将其应用于所有金字塔层,我们是否循环并将操作逐个应用于所有层,或者是否有任何算法可以将其应用于一层然后传播它,因为它们都只是一个大图像的重新采样形式。如果有算法,那是什么算法?

标签: image image-processing geotiff image-enhancement


【解决方案1】:

你有两个不错的选择:

  1. 对最高分辨率应用操作并根据需要重新创建较低的分辨率(当前级别和其他级别(如果选择)。

  2. 保留一组动作,仅适用于当前关卡,切换关卡时将整个堆栈应用到该关卡。

在这两个选项中,所有非当前级别*都可以存储在文件中并仅在选择该级别时加载到内存中。 (* 除了选项 1 中的最高分辨率,它必须保存在内存中。)

选项 1 更准确 - 如果直接应用于较低分辨率,某些操作可能不太准确。

如果您的当前关卡不经常更改,并且操作足够快,可以在当前关卡发生更改时按顺序应用到当前关卡,则选项 2 会产生最少的计算和使用的并发内存。

对于选项 1,您将需要一个缩减算法(调整大小)来从最高分辨率计算当前级别。

对于选项 2,您将需要一组操作(每个操作的 + 参数)。

【讨论】:

  • 每层是前一层的 1/2 倍的金字塔将小于最高分辨率大小的 1.5 倍。无需考虑写入文件。
  • 取决于您拥有的标题数量和每个标题的最高分辨率。由于被问者提到了geotiffs,它可能会占用大量内存。
  • 是的,最高分辨率可能非常大,但金字塔的其余部分将在该大小的 1/4 到 1/2 之间。我认为我之前的评论不是很清楚。
  • sum(x + 0.5*0.5*x + 0.25*0.25*x + ...)
猜你喜欢
  • 2016-08-20
  • 2016-11-05
  • 2011-08-11
  • 1970-01-01
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多