2017-02-09 5 views
0

イメージをインポートしようとしています。すべてのイメージは.csvファイルの最初の列にそれぞれのファイルパスを持ちます。以下はこれまで私が取ってきたアプローチです。アイデアはパスのリストを作成し、opencvを使用して画像をリスト "cv_img"に "imread"します。パスのリストに基づいてイメージをインポートする

手元の問題は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

あなたが –

+0

。あなたはここで読むしようとしているサンプルCSVファイルを投稿し、私の前のため申し訳ありませんが –

答えて

0

forループにエラーがあると推測します。私はあなたのforループは、リストの最初のイメージを読み取っていると思います。

を次のようにそれを修正してみてください。

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

@indraforyou偉大な仕事リスト1を印刷する必要がありますあなたのコードをテストしましたか? –

+0

をそれをスポッティングで –

+0

これは私にエラーをもたらしました。pandas.index.IndexEngine.get_loc(pandas/index.c:4154)のpandas/index.pyx() pandas.indexのpandas/index.pyx。 IndexEngine.get_loc(パンダ/ index.c:4018)() パンダ/ pandas.hashtable.PyObjectHashTable.get_itemでhashtable.pyx(パンダ/ hashtable.c:12368)() パンダ/パンダでhashtable.pyx。 hashtable.PyObjectHashTable.get_item(pandas/hashtable.c:12322)() KeyError:1 – Jake3991

0

だから私は別のアプローチをしようとしていますし、まだいくつかの問題を抱えて。ここでの目標は、以下の次元の配列を持つことです。 (長さ、160,329,3)。ご覧のとおり、私のリサーブ機能はコメントアウトされています。 「print(images.shape)」行には(8037)が返されます。正しい配列の次元を取得する方法がわからないcsvファイルの第1列は、問題の画像へのパスのリストです。私はパンダを前になっていたエラーを修正。

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) 
関連する問題