2017-03-02 133 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)) 
相關問題