yield返回的是一个generator 对象,可以用for遍历
例如:滑动窗口代码,20x20的图像,10x10的滑动窗口,滑动间距为10
return只返回第一个滑动窗口,然后函数就结束了
image1=image[0:20,0:20,0]
def sliding_window(image, window_size, step_size):
for y in range(0, image.shape[0], step_size[1]):
for x in range(0, image.shape[1], step_size[0]):
return(x, y, image[y : y + window_size[1], x:x + window_size[0]])
aa=sliding_window(image1,(10, 10),(10,10))
for i in aa:
print(i)
而yield返回的则是一个迭代容器,可以用for循环遍历
image1=image[0:20,0:20,0]
def sliding_window(image, window_size, step_size):
for y in range(0, image.shape[0], step_size[1]):
for x in range(0, image.shape[1], step_size[0]):
yield(x, y, image[y : y + window_size[1], x:x + window_size[0]])
aa=sliding_window(image1,(10, 10),(10,10))
for i in aa:
print(i)
可以循环遍历四个滑动窗口