2017-03-02 137 views
0

声明:我是编程新手。 下面的代码不起作用,因为它似乎功能1输出没有传递到功能2.返回函数的值到另一个函数python

def img_to_color(path_file): 

# takes an image and calculates avg red/green/blue value 
color_avg = [red, green, blue] 
return color_avg   

def extract_RGB(path_folder): 

j = 0 
RGB = [] 
file_count = len(os.listdir(path_folder)) 
files = os.listdir(path_folder) 
while j < file_count: 
    img_to_color(path_folder + "/" + files[j]) 
    RGB.append(color_avg) 
    j = j+1 
X_training.append(trainingDataFolder(pfad, RGB)) 

img_to_color工作,但RGB停留[]即使我调用该函数的功能。

+0

什么是'X_training'?在哪里宣布? “红”,“绿”和“蓝”也一样。 –

+0

我排除了红色,绿色和蓝色的计算,使其更短。此功能正常工作。 X_training也存在(作为全局声明)。 –

回答

0

变量color_avg位于img_to_color函数的本地。它不存在于extract_RGB之内。 img_to_color返回一个值,所以你必须要么分配给它一个变量,如:

color_avg = img_to_color(...)

,或者直接返回值传递给一个函数,如:

RGB.append(img_to_color(...)

+0

非常感谢斯宾塞。 完美的作品,我终于明白这是如何工作的。 –

0

你有问题与缩进。您应该先阅读this

顺便说一句,变量X_training似乎并没有在任何地方声明,所以我不确定它是否是更全局上下文的一部分。

的代码应该这样写:

def img_to_color(path_file): 
    # takes an image and calculates avg red/green/blue value 
    color_avg = [red, green, blue] 
    return color_avg   

def extract_RGB(path_folder): 
    j = 0 
    RGB = [] 
    file_count = len(os.listdir(path_folder)) 
    files = os.listdir(path_folder) 
    while j < file_count: 
     color_avg = img_to_color(path_folder + "/" + files[j]) 
     RGB.append(color_avg) 
     j = j+1 
    X_training.append(trainingDataFolder(pfad, RGB)) 
相关问题