【问题标题】:Overlapping Sliding windows over image在图像上重叠滑动窗口
【发布时间】:2015-02-21 16:22:26
【问题描述】:

我的目标是让一个滑动窗口以重叠的步骤在图像上滑动,以便我可以在每个窗口中运行分类器并检测是否有有趣的对象。

为此,我需要确保

  • 我提取的用于分类的窗口确实对整个图像进行了处理,并且
  • 抓取原始图像上每个滑动窗口的顶部和左侧坐标。

从这里跟进: Sliding window - how to get window location on image?

并基于此代码进行滑动窗口:

https://github.com/keepitsimple/ocrtest/blob/master/sliding_window.py#blob_contributors_box

我在做如下,假设winh和winw是滑动窗口的宽高,window_size是(winh,winw):

grid_h_max =(imgheight/winh)
grid_w_max= (imgwidth / winw)
win = sliding_window(img, window_size, shiftSize=None, flatten=False) 
for h in range (grid_h_max): 
    for w in range (grid_w_max): 
        win = windows[h,w]
        grid_pos = (h,w), (winh, winw)) 
        t, b, l, r = get_win_pixel_coords(grid_pos, window_size)

这工作得很好——给我滑动窗口以及每个窗口的坐标。但我没有得到重叠的滑动窗口。

因此,如果我的步长为 10,并且我的第一个窗口从 (top, left): (0,0) 开始,那么我的第二个窗口应该是 (0, 10)。

但在上面的代码中,我的第二个窗口是 (0, 60)。

之前,我使用的是这段代码:

windows = sw.sliding_window(image1, window_size, step_size, flatten=True) 
    for w in windows:
        # and then I grabbed each w and printed it out

这给了我所有的滑动窗口,包括重叠的窗口。但是在这种方法中,我无法获取每个滑动窗口的顶部和左侧坐标。

【问题讨论】:

标签: python computer-vision object-detection sliding-window


【解决方案1】:

好的,所以我弄清楚了问题所在。

这段代码没有造成重叠:

grid_h_max =(imgheight/winh)
grid_w_max= (imgwidth / winw)
win = sliding_window(img, window_size, shiftSize=None, flatten=False) 

将整个图像尺寸除以窗口尺寸显然会得到不重叠的结果。

为了获得每个维度的正确窗口数,我只需让sliding_window 函数告诉我垂直和水平窗口的数量是多少:

win = sliding_window(img, window_size, shiftSize=None, flatten=False) 
grid_h_max = win.shape[0]
grid_w_max = win.shape[1]

这又给了我大约 5000 个窗口。

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多