如何讀取資料夾裡面的數據?
請問,怎麼才能完美的讀取資料夾裡面的數據啊?不知道為什麼我跟著網上的做,結果那個圖片的shape不盡人意
我用下面的程式去弄,但是所輸出的shape和以往做範例的不同,我也不知該怎麼變化
def read_directory(directory_name):
for filename in os.listdir(r"./"+directory_name):
img = cv2.imread(directory_name + "/" + filename)
array_of_img.extend(img)
return(array_of_img)
回答列表
-
2019/04/24 下午 01:26陳明佑 (Ming You Chen)贊同數:0不贊同數:0留言數:1
同學您好, 因為競賽期限快到了,
這邊先透露解答讀檔部分的寫法給您參考,
希望同學繼續加油!! 趕在今天結束前提交答案
# 初始化 Array, 並設定讀取路徑等參數
X_train = []
y_train = []
X_test = []
id_test = []
IMG_SIZE = 150
# 設定花朵名稱對應的類別碼
flower_mapping = {'daisy':0, 'dandelion':1, 'rose':2, 'sunflower':3, 'tulip':4}
flowers = ['daisy', 'dandelion', 'rose', 'sunflower', 'tulip']
# 定義讀取資料的函數, 將圖檔資料讀取到輸入用的 Array 之中
def make_train_data(flower_type):
dir_path = f'{train_path}{flower_type}/'
for img in tqdm(os.listdir(dir_path)):
y_train.append(str(flower_mapping[flower_type]))
path = os.path.join(dir_path, img)
img = cv2.imread(path,cv2.IMREAD_COLOR)
img = cv2.resize(img, (IMG_SIZE,IMG_SIZE))
X_train.append(np.array(img))
def make_test_data():
dir_path = test_path
for img in tqdm(os.listdir(dir_path)):
id_test.append(img[:-4])
path = os.path.join(dir_path, img)
img = cv2.imread(path,cv2.IMREAD_COLOR)
img = cv2.resize(img, (IMG_SIZE,IMG_SIZE))
X_test.append(np.array(img))
# 載入訓練資料
for flower in flowers:
make_train_data(flower)
print(f'Loading {flower} pictures, X_train length : {len(X_train)}')
# 載入測試資料
make_test_data()
print(len(X_test))