我有一個代碼,我通知一個文件夾,它有n
圖像,代碼應該返回給我的相對頻率直方圖。保存一個變量(在循環中)的所有值在Python中的另一個變量
從那裏,我有一個函數調用:
for image in total_images:
histogram(image)
哪裏image
是當前圖像的代碼正在與total_images
是總的圖像(n
)的它在事先通知的文件夾。
從那裏我調用histogram()
函數,發送代碼正在工作的當前圖像作爲參數。
我的histogram()
函數的目的是返回每個圖像的相對頻率的直方圖(rel_freq
)。
雖然返回的值是正確的,rel_freq
應該是一個陣列1x256位置範圍從0到255。
我怎樣才能變換rel_freq
可變成1x256數組?並將每個值存儲在其相應的位置?
當我做len *rel_freq)
它返回我256,這時候我意識到,這不是我需要的格式...
此外,雖然返回的數據是正確的......
之後,我需要創建一個數組store_all = len(total_images)x256
所有rel_freq
...
我需要保存所有rel_freq
在數組稍後保存和外部文件,例如保存爲.TXT。
我想創建另一個功能做到這一點的?
類似的東西,但我不知道該怎麼做是正確的,但我相信你會理解其中的邏輯...
def store_all_histograms(total_images):
n = len(total_images)
store_all = [n][256]
for i in range(0,n):
store_all[i] = rel_freq
我知道函數store_all_histograms()
是錯誤的,我只是在這裏寫出來或多或少地顯示我正在考慮的方式......但是,我不知道如何正確地做到這一點......在這一點,我得到的錯誤是:
store_all = [n][256]
IndexError: list index out of range
畢竟,我需要的store_all
變量保存例如所有的相對頻率直方圖是這樣的:
position: 0 ... 256
store_all = [
[..., ..., ...],
[..., ..., ...],
.
.
.
n
]
現在遵循的代碼塊:
def histogram(path):
global rel_freq
#Part of the code that is not relevant to the question...
rel_freq = [(float(item)/total_size) * 100 if item else 0 for item in abs_freq]
def store_all_histograms(total_images):
n = len(total_images)
store_all = [n][256]
for i in range(0,n):
store_all[i] = rel_freq
#Part of the code that is not relevant to the question...
# Call the functions
for fn in total_images:
histogram(fn)
store_all_histograms(total_images)
我希望我已成功地清晰與問題。
在此先感謝,如果您需要任何其他信息,您可以問我...
「當我做LEN(rel_freq)返回我256,這時候我意識到,這不是我需要的格式...」你怎麼從1x256陣列期待什麼呢? 'len'是一個python builtin。 – roganjosh
歡迎來到堆棧溢出。更長的問題不一定比簡短的問題好。我很難理解你的問題的重要部分是什麼。這裏有一個寫一個很好的問題的指南:[問] –
@roganjosh我需要這個,因爲我稍後會將直方圖的值放入多層感知器中,看看它是否能夠對我的圖像進行分類。 – QuestionsStackOverflow