我试着遍历我的子目录,每个子目录包含两个图像。我试着读这两张图片,然后把它们放在一个元组中。我就是这么做的:
import os
import os.path
from PIL import Image
import cv2
path = '/Users/abc/Desktop/images'
pairs = []
for root, dirs, files in os.walk(path):
for file in files:
if file.startswith('1'):
im1 = cv2.imread(root + '/' + '1.jpg')
elif file.startswith('2'):
im2 = cv2.imread(root + '/' + '2.jpg')
pair = (im1,im2)
pairs.append(pair)
但是,我得到以下错误:
^{pr2}$我做错什么了?在
谢谢。在
在您的代码中
im1
没有声明。我是说这条线确保你经历了所有的情况。否则,在for循环之前为
im1
和im2
声明一个默认值。在原始答案:
在循环之前声明并分配变量。我不认为这真的是一个好的方法,但你的问题包含的有用信息太少,无法做出一个好的解决办法。在
更新:
1.以下面的代码snape为例:
^{pr2}$1)如果
if-condition
不满足,则不执行代码,引用时未分配变量。在2)当离开
loop
时,for-loop
中的局部赋值变量可能仍然存在(如果没有被GC删除)。在2.那么如果我们想使用变量而不管条件满足,我们可以先声明并分配变量。但一定要
check whether the variable is OK
。在在使用前声明并分配变量,不会出现语法错误。在
但是}是可以的)。在
remember to check whether value is ok
(我不认为{im1的“IF”条件不满足。可能有两个原因1。文件(1.jpg)不存在。2文件名将不同,如“1.jpg”或“~1.jpg”等。请仔细检查。添加语句“print files”以检查位置中的文件
相关问题 更多 >
编程相关推荐