簡體   English   中英

在Python中指定文件路徑時出錯

[英]Error specifying the file path in Python

我是python的新手,並不十分了解。 我想修改在線代碼以將圖像數據轉換為lmdb形式。

我給出了src和dst的根,如下所示:path_src ='F:\\ caffe-windows \\ caffe-windows \\ data \\ sift-flow \\ test \\'path_dst ='F:\\ caffe-windows \\ caffe-windows \\ data \\過篩流\\ 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'

在此處輸入圖片說明

我不熟悉此庫,但您的問題從此行開始-
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\\']

希望我會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM