使用Python glob在循环中一次加载两个图像

使用Python glob在循环中一次加载两个图像,python,glob,Python,Glob,我正在尝试使用Python glob读取文件夹中的所有图像。 以下是代码的一部分: 它工作得很好,但我需要在glob循环的一次迭代中一次读取两个图像,即两个连续的图像。简单地说,我需要image[i]和image[i+1] 这就是你要找的吗 files = glob.glob("\*.jpg") img_a = cv2.imread(files[0]) for file in files[1:]: img_b = cv2.imread(file); # do what yo

我正在尝试使用Python glob读取文件夹中的所有图像。 以下是代码的一部分:

它工作得很好,但我需要在glob循环的一次迭代中一次读取两个图像,即两个连续的图像。简单地说,我需要
image[i]
image[i+1]


这就是你要找的吗

files = glob.glob("\*.jpg")
img_a = cv2.imread(files[0])

for file in files[1:]:

    img_b = cv2.imread(file);

    # do what you need to do with img_a and img_b

    # and then prepare img_a for the next loop
    img_a = img_b

非常感谢你。这么简单聪明的方法。在最后一行有必要做copy.copy吗?我的意思是简单的img_a=img_b;也可以工作吗?如果您只分配
img\u a=img\u b
img\u a
将指向与
img\u b
相同的数组,因此只要您在下一个循环中读取新的
img\u b
img\u a
。也许您可以尝试一下,看看它的行为如何,但我确实认为您需要显式复制对象。@Lisa您不需要复制。是
img_a
将是与
img_b
相同的对象,但
imread()
创建一个新对象,该对象将绑定到名称
img_b
。指定给名称对以前绑定到该名称的任何对象都没有影响。(除非它不再被引用,否则对垃圾收集可能是公平的。)@BlackJack哦,好的,很高兴知道-谢谢!我相应地更新了答案。
files = glob.glob("\*.jpg")
img_a = cv2.imread(files[0])

for file in files[1:]:

    img_b = cv2.imread(file);

    # do what you need to do with img_a and img_b

    # and then prepare img_a for the next loop
    img_a = img_b