利用滑动/滚动窗口技术将输入图像分成给定大小的相等块,以便使用以下函数将图像分成指定的窗口大小。
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的相同大小的块将在图像的末尾留下一些奇数边界像素,第一轮滑动窗口后的结果图像看起来像什么如下。
正如我们在上面所看到的,右侧的像素没有被分成窗口,因为它< s< s<窗口尺寸为50x50。
所以我想要的是修改rolling_window函数,以便为每个可能的行/列中的剩余像素形成单独的窗口块。那么如何实现这一点。
非常感谢任何帮助!