Данные изображения для нейронной сети - Imread -> Нет такого файла или каталога - PullRequest
0 голосов
/ 06 апреля 2020

Я описал свой учебный проект здесь: Разделение данных валидации поездов - метки доступны, но классов нет

И попытался прочитать данные с предложенным кодом из ответа sid_508.

import os
import matplotlib.pyplot as plt
import numpy as np 
import pandas as pd

xs, y = [], []
main_dir = r'C:\Users\tobis\OneDrive\Desktop\Masterarbeit\data\2017-IWT4S-CarsReId_LP-dataset' # main directory
label_data = pd.read_csv(r'C:\Users\tobis\OneDrive\Desktop\Masterarbeit\data\2017-IWT4S-CarsReId_LP-dataset\trainVal.csv')

for folder in os.listdir(main_dir):
    for img in os.listdir(os.path.join(main_dir, folder)):
        arr = plt.imread(os.path.join(main_dir, folder) + img)
        xs.append(arr)
        y.append(label_data[label_data['image_path'] == os.path.join(folder, img)]['lp'])
                #^ this part can be changed depending on the exact format of your label data file.

# then you can convert them into numpy arrays and reshape them as you need.
xs = np.array(xs)
y = np.array(y)

Я получил следующий код ошибки:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-12-ee9624548ea7> in <module>
     10 for folder in os.listdir(main_dir):
     11     for img in os.listdir(os.path.join(main_dir, folder)):
---> 12         arr = plt.imread(os.path.join(main_dir, folder) + img)
     13         xs.append(arr)
     14         y.append(label_data[label_data['image_path'] == os.path.join(folder, img)]['lp'])

~\.conda\envs\python36\lib\site-packages\matplotlib\pyplot.py in imread(fname, format)
   2133 @docstring.copy(matplotlib.image.imread)
   2134 def imread(fname, format=None):
-> 2135     return matplotlib.image.imread(fname, format)
   2136 
   2137 

~\.conda\envs\python36\lib\site-packages\matplotlib\image.py in imread(fname, format)
   1431             return handler(fd)
   1432         else:
-> 1433             with open(fname, 'rb') as fd:
   1434                 return handler(fd)
   1435     else:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\tobis\\OneDrive\\Desktop\\Masterarbeit\\data\\2017-IWT4S-CarsReId_LP-dataset\\s01_l011000_1.png'

Я понимаю это, потому что нет пути или файла с именем

'C:\\Users\\tobis\\OneDrive\\Desktop\\Masterarbeit\\data\\2017-IWT4S-CarsReId_LP-dataset\\s01_l011000_1.png'

Вместо правильного пути к первому изображению было бы:

'C:\\Users\\tobis\\OneDrive\\Desktop\\Masterarbeit\\data\\2017-IWT4S-CarsReId_LP-dataset\\s01_l01\\1_1.png'

Мне кажется, что Python не распознает эту последнюю папку, в которой хранятся изображения (из-за этого отсутствуют baskslashes). Кроме того, три ноля добавляются к фактическому имени файла. Я не знаю, почему это происходит, но в первую секунду или в первые несколько минут после открытия папки изображений имя изображения равно 1000_1, но вскоре после этого эти три нуля исчезают, а имя изображения снова становится 1_1.

Спасибо!

...