私は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'
こんにちは、ありがとうございました。私はあなたの提案を試みましたが、新しいエラーが発生しました。ファイルシステムのパスはUnicodeまたはバイトでなければなりません。 – Kai
stacktraceをコピーしてください(PSの場合はリストにパスを入れておいてください。 out)。 – doratheexplorer0911
私はベクトルのようにリストにすべての画像パスを入れてください。私はPythonにまったく新しいので、それを行う方法はありません...後で助けてくれてありがとう! – Kai