2017-02-09 4 views
0

Так что я пытаюсь импортировать некоторые изображения. Все изображения имеют соответствующие пути к файлам в первом столбце CSV-файла. Ниже приведен подход, который я сделал до сих пор. Идея состоит в том, чтобы составить список путей, а затем использовать opencv для «imread» изображений в список «cv_img»Импорт изображений по перечню путей

Проблема в том, что только 1 изображение добавляется в список cv_img. Любая идея, почему это происходит?

Это лучший подход?

#Import Labels 
import pandas as pd 
df = pd.read_csv('File path.csv',usecols=[3]) 
labels=df 

#Import features 
#Problem area 
cv_img = [] 
list1=pd.read_csv('File path.csv',usecols=[0]) 
for img in list1: 
    n= cv2.imread(img) 
    cv_img.append(n) 

X_train=cv_img 
y_train=labels 
print(len(X_train)) #prints 1 
print(len(y_train)) #prints 1136 
+0

вы должны опубликовать образец CSV, который вы пытаетесь прочитать здесь. –

+0

и распечатать песни1 –

ответ

0

Я полагаю, есть ошибка в цикле for. Я думаю, что ваш цикл for просто считывает первое изображение в списке.

Попробуйте изменить его на следующее:

import cv2 
for img in range(len(list1)): 
    n= cv2.imread(list1[img]) 
    cv_img.append(n) 
+0

@indraforyou Великой работы в пятнистость его –

+0

Извините за мой предыдущий комментарий - я заметил, что list1 - это фрейм данных pandas. Кстати, вы проверили свой код? –

+0

Это дало мне ошибку. pandas/index.pyx в pandas.index.IndexEngine.get_loc (pandas/index.c: 4154)() pandas/index.pyx in pandas.index. IndexEngine.get_loc (панды/index.c: 4018)() панды/hashtable.pyx в pandas.hashtable.PyObjectHashTable.get_item (панды/hashtable.c: 12368)() панды/hashtable.pyx в панд. hashtable.PyObjectHashTable.get_item (pandas/hashtable.c: 12322)() KeyError: 1 – Jake3991

0

Так что я пытаюсь другой подход и до сих пор некоторые проблемы. Цель здесь состоит в том, чтобы иметь массив следующих измерений. (длина, 160, 329,3). Как вы можете видеть, моя функция reshape закомментирована. В строке «print (images.shape) возвращается (8037). Не знаете, как перейти к правильному размеру массива. Для справки 1-й столбец в файле csv представляет собой список путей к рассматриваемому изображению. исправлена ​​ошибка, я получал раньше с пандами.

import csv 
import matplotlib.pyplot as plt 
f = open('/Users/username/Desktop/data/driving_log.csv') 
csv_f = csv.reader(f) 

m=[] 
for row in csv_f: 
    n=(row) 
    m.append(n) 

images=[] 
for i in range(len(m)): 
    img=(m[i][1]) 
    img=img.lstrip() 
    path='/Users/username/Desktop/data/' 
    img=path+img 
    image=cv2.imread(img) 
    images.append(image) 
item_num = len(images) 
images=np.array(images) 
#images=np.array(images).reshape(item_num, 160, 320, 3) 
print(images.shape) 
Смежные вопросы