【发布时间】:2016-02-11 11:39:05
【问题描述】:
我正在尝试使用 Python-glob 从文件夹中读取所有图像。 以下是部分代码:
for file in glob.glob("\*.jpg"): image=cv2.imread(file);它工作得很好,但我需要在 glob 循环的一次迭代中一次读取两个图像,即两个连续的图像。简单来说,我需要
image[i]和image[i+1]。
【问题讨论】:
我正在尝试使用 Python-glob 从文件夹中读取所有图像。 以下是部分代码:
for file in glob.glob("\*.jpg"): image=cv2.imread(file);它工作得很好,但我需要在 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
【讨论】:
img_a=img_b,img_a 将指向与img_b 相同的数组,所以当你在下一个循环中读取一个新的img_b 时,img_a 将也要更新。也许您可以尝试一下,看看它的行为如何,但我确实认为您需要显式复制该对象。
img_a 将与img_b 是同一个对象,但imread() 创建一个新对象,该对象将绑定到名称img_b。分配给名称将不会影响之前绑定到该名称的任何对象。 (除非它不再被引用,对垃圾收集来说可能是公平的游戏。)