2D中的最小/最大滑动窗口

And*_*kov 4 window minimum sliding

假设给出了一个大小为NxN且整数k - 窗口大小的整数矩阵矩阵.我们需要使用滑动窗口找到矩阵中的所有局部最大值(或最小值).这意味着,如果一个像素在一个窗口相对于所有像素的最小(最大)值在其周围,那么它应该被标记为最小(最大).存在是指找到在载体中局部最小值的公知的滑动窗口最小算法,但不是在一个矩阵 http://home.tiac.net/~cri/2001/slidingmin.html

你知道一个可以解决这个问题的算法吗?

Tom*_*Tom 7

由于最小滤波器是可分离滤波器,因此可以通过计算每个维度的最小1D滑动窗口来计算2D滑动窗口最小值.对于4x4矩阵和2x2窗口,算法的工作原理如下:

假设这是开头的矩阵

3 4 2 1
1 5 4 6
3 6 7 2
3 2 5 4
Run Code Online (Sandbox Code Playgroud)

首先,分别计算矩阵每行的1D滑动窗口最小值

3 2 1
1 4 4
3 6 2
2 2 4
Run Code Online (Sandbox Code Playgroud)

然后,计算前一结果的每列的最小1D滑动窗口.

1 2 1
1 4 2
2 2 2
Run Code Online (Sandbox Code Playgroud)

结果与直接计算2D窗口的最小滑动窗口的结果相同.这样,您可以使用1D滑动窗口最小算法来解决任何nD滑动窗口的最小问题.