如何将增强(或修改图像的任何操作)应用于以金字塔形式存储的图像,它是否首先应用于某个金字塔层(当前缩放级别),然后在用户缩放时重新应用于不同的层放大或缩小,或者一次性对整个金字塔应用增强,或者是否有某种算法可以有效地将增强效果传播到其他金字塔层。
我想知道这样做的最佳方法是什么。
如何将增强(或修改图像的任何操作)应用于以金字塔形式存储的图像,它是否首先应用于某个金字塔层(当前缩放级别),然后在用户缩放时重新应用于不同的层放大或缩小,或者一次性对整个金字塔应用增强,或者是否有某种算法可以有效地将增强效果传播到其他金字塔层。
我想知道这样做的最佳方法是什么。
你有两个不错的选择:
对最高分辨率应用操作并根据需要重新创建较低的分辨率(当前级别和其他级别(如果选择))。
保留一堆动作,仅适用于当前级别,切换级别时将整个堆栈应用到该级别。
在这两个选项中,所有非当前级别*都可以存储在文件中并仅在选择该级别时加载到内存中。(* 除了选项 1 中的最高分辨率,它必须保存在内存中。)
选项 1 更准确 - 如果直接应用于较低分辨率,某些操作可能不太准确。
如果您的当前级别不经常更改,并且操作足够快以在当前级别发生更改时按顺序应用到当前级别,则选项 2 会产生最少的计算和使用的并发内存。
对于选项 1,您将需要一个缩减算法(调整大小)来从最高分辨率计算当前级别。
对于选项 2,您将需要一堆操作(每个操作的 + 参数)。