2017-06-24 12 views
0

私はPythonには新しく、よく分からない。 画像データをlmdb形式に変換するオンラインコードを変更したい。Pythonでファイルパスを指定する際のエラー

私は以下のように私のsrcとdstののルートを与えられた: paths_src = 'F:データ\カフェ-WINDOWS \カフェ-WINDOWS \ \ふるいにかける - フロー\テスト\' path_dst =「F:\のカフェ、窓\ caffe-windows \ data \ sift-flow \ testlmdb '

しかし、コードを実行した後にエラーが発生しました。私の道は間違っているようですね?誰も助けることができますか?私もコードを添付します。

import os 
import numpy as np 
from scipy import io 
import lmdb 
import caffe 
from PIL import Image 

NUM_IDX_DIGITS = 10 
IDX_FMT = '{:0>%d' % NUM_IDX_DIGITS + 'd}' 

print '1111' 

paths_src = 'F:\\caffe-windows\\caffe-windows\\data\\sift-flow\\test\\' 
path_dst = 'F:\\caffe-windows\\caffe-windows\\data\\sift-flow\\testlmdb' 

print '2222' 

def img_to_lmdb(paths_src,path_dst): 
    in_db = lmdb.open(path_dst, map_size=int(1e9)) 
    with in_db.begin(write=True) as in_txn: 
     for in_idx, in_ in enumerate(paths_src): 
      print 'img:::'+str(in_) 
      # load image: 
      # - as np.uint8 {0, ..., 255} 
      # - in BGR (switch from RGB) 
      # - in Channel x Height x Width order (switch from H x W x C) 
      im = np.array(Image.open(in_)) # or load whatever ndarray you need 
      im = im[:,:,::-1] 
      im = im.transpose((2,0,1)) 
      im_dat = caffe.io.array_to_datum(im) 
      in_txn.put('{:0>10d}'.format(in_idx), im_dat.SerializeToString()) 
    in_db.close() 



img_to_lmdb(paths_src,path_dst) 
print '3333' 

enter image description here

答えて

0

私はこのライブラリに精通していないですが、あなたの問題は、このライン - で始まり
for in_idx, in_ in enumerate(paths_src):

paths_srcが反復可能である文字列であるため、組み込み関数の列挙は、単に行きますその文字列の各文字を通るので、最初の項目はパス全体ではなく文字 'F'になります。 あなたがすべきことは、paths_srcをリストとして定義することです。その代わりに:

paths_src = 'F:\\caffe-windows\\caffe-windows\\data\\sift-flow\\test\\' 

あなたが行う必要があります。

paths_src = ['F:\\caffe-windows\\caffe-windows\\data\\sift-flow\\test\\'] 

希望私は参考になりました。

+0

こんにちは、ありがとうございました。私はあなたの提案を試みましたが、新しいエラーが発生しました。ファイルシステムのパスはUnicodeまたはバイトでなければなりません。 – Kai

+0

stacktraceをコピーしてください(PSの場合はリストにパスを入れておいてください。 out)。 – doratheexplorer0911

+0

私はベクトルのようにリストにすべての画像パスを入れてください。私はPythonにまったく新しいので、それを行う方法はありません...後で助けてくれてありがとう! – Kai

関連する問題