python - 在Python中不使用 'for'循环滑动搜索窗口

标签 python numpy for-loop sliding-window

我正在尝试用 python 创建幻灯片搜索算法。我试图通过迭代坐标来索引图像。请检查下面的代码。这里我使用了 2 个 FOR 循环(这需要很多时间)。我想实现它,它的计算速度会非常快。有没有更好的矢量化方法可以更快地实现?

width,height,depth = img.shape
wind_size = 64
xx = np.arange(0,width,wind_size)
yy = np.arange(0,height,wind_size)
for i in xx[:-1]:
    for j in yy[:-1]:
        img_w = img[i:i+wind_size,j:j+wind_size,:]
        img_w = cv2.cvtColor(img_w,cv2.COLOR_BGR2RGB)
        img_lst1.append(img_w/255.0) 

最佳答案

使用here中的window_nd ,然后就这样做

window_nd(image, window = 64, steps = 64, axis = (0, 1))

这使用np.stride_tricks.as_strided来创建窗口作为原始图像的 View 。

或者,您可以使用skimage.util.shape.view_as_blocks

skimage.util.shape.view_as_blocks(image, (64, 64, 3))

关于python - 在Python中不使用 'for'循环滑动搜索窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52735825/

相关文章:

python - 检查 XML 声明是否存在

Python 数据框分隔包含列表的单元格值

python - PyMC 中的多项分布

python - genfromtxt 中的 deletechars 参数未按预期工作

c# - 有没有办法在 C# 中向数组添加多个元素?

python - 如何使用 Python 中的 Mosquitto 将文件发布到 AWS-IoT

python - Django:覆盖模型中的插入、更新、删除

python - 在 Pandas Dataframe 中回收

javascript - 不知道为什么语法错误 ")"javascript

python - 在运行时更改 Python for 循环范围(上限)