数组边界检查 o(1)(积分图像?)

信息处理 图像处理 逐像素操作
2022-02-10 02:02:33

不确定这是否是正确的地方,但我有一个关于处理具有 o(1) 复杂度的像素数组的技术的问题。那是要获得数组子集的总和,但如果该子集超出数组的边界,则将其设为零。这是一个二维数组。

实际上,该数组可以达到 [2000][2000],但为了简单起见,我们采用大小为 [4][4] 的 2D 数组。

array[4][4] = {0,  1,  2,  3
               4,  5,  6,  7
               8,  9,  10, 11
               12, 13, 14, 15}

现在假设我想得到 [2][2] 和 [3][3] 之间的数组之和,即添加 10 + 11 + 14 + 15。这可以在 ao(1) 解决方案中使用总面积表。

但是,我对如何保持这种 o(1) 复杂性有点困惑:

  1. 数组子集延伸到实际数组之外
  2. 实际数组之外的数组索引被视为零。
  3. 算法计算量还是o(1)

因此,例如,对于这个像素总和,我被要求得到 [2][2] 到 [4][4] 的总和。这有一个理论数组,实际之外的数字表示为 f(代表假):

array_theory[5][5] = {0,  1,  2,  3,  0f
                      4,  5,  6,  7,  0f
                      8,  9,  10, 11, 0f
                      12, 13, 14, 15, 0f
                      0f, 0f, 0f, 0f, 0f}

或在图像中: 在此处输入图像描述

我想我必须使用某种过滤器或图像处理技术,我似乎无法在网上找到或不知道关键字,并且在我的搜索结果中与它调情。

任何帮助将不胜感激!

0个回答
没有发现任何回复~