在 python 中不使用 'for' 循环的滑动搜索 window
sliding search window without using 'for' loop in python
我正在尝试在 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)
使用 中的 window_nd
,然后
window_nd(image, window = 64, steps = 64, axis = (0, 1))
这使用 np.stride_tricks.as_strided
创建 windows 作为原始图像的视图。
或者,您可以使用 skimage.util.shape.view_as_blocks
skimage.util.shape.view_as_blocks(image, (64, 64, 3))
我正在尝试在 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)
使用 window_nd
,然后
window_nd(image, window = 64, steps = 64, axis = (0, 1))
这使用 np.stride_tricks.as_strided
创建 windows 作为原始图像的视图。
或者,您可以使用 skimage.util.shape.view_as_blocks
skimage.util.shape.view_as_blocks(image, (64, 64, 3))