python opencv滑动窗口问题

时间:2017-07-05 09:10:10

标签: python-2.7 opencv numpy

利用滑动/滚动窗口技术将输入图像分成给定大小的相等块,以便使用以下函数将图像分成指定的窗口大小。

def rolling_window(base_cord,test_image, window):
    """Very basic multi dimensional rolling window. window should be the shape of
    of the desired subarrays. Window is either a scalar or a tuple of same size
    as `arr.shape`.
    """
    windowsize_r = window[0]
    windowsize_c = window[1]
    chunk_arr = {}
    for r in range(0, test_image.shape[0] - windowsize_r, windowsize_r):
        for c in range(0, test_image.shape[1] - windowsize_c, windowsize_c):
            win = test_image[r:r + windowsize_r, c:c + windowsize_c]
            cord = (r+base_cord[0], c+base_cord[1])
            chunk_arr[cord] = win
    return chunk_arr
  

所以,这个函数返回给我指定大小的窗口   50x50及其基础以字典格式协调。

但问题是假设我向下传递任何奇数大小的图像,如968x885然后分割大小为50x50的相同大小的块将在图像的末尾留下一些奇数边界像素,第一轮滑动窗口后的结果图像看起来像什么如下。

enter image description here

正如我们在上面所看到的,右侧的像素没有被分成窗口,因为它< s< s<窗口尺寸为50x50。

所以我想要的是修改rolling_window函数,以便为每个可能的行/列中的剩余像素形成单独的窗口块。那么如何实现这一点。

非常感谢任何帮助!

0 个答案:

没有答案