Я пытался выяснить, как решить эту проблему.
File "<ipython-input-27-0b2b3f4a72cc>", line 5, in <module>
X_BW, y_BW = setAnnotation(path, 1, nclusters = clusters, clf = clf)
File "<ipython-input-26-6f5632d48ec5>", line 211, in setAnnotation
for file in os.listdir(newPath):
NotADirectoryError: [WinError 267] Invalid directory name: 'C:/img/soft/leftshoe10.jpg'
Я использую эту функцию, чтобы установить аннотацию для всех изображений, которые я посылаю по пути.
def setAnnotation(path, representation, nclusters = None, clf = None, centroids = None, gmm = None, alpha = None):
c = 0
for folder in os.listdir(path):
newPath = os.path.join(path, folder).replace("\\", "/")
annotation = os.path.basename(newPath)
print(newPath)
for file in os.listdir(newPath):
if file.endswith(".jpg"):
if c == 0:
if representation == 1:
X = getBOF(os.path.join(newPath, file), clf, nclusters)
print("PRUEBA CON BOW")
elif representation == 2:
X = getVLAD(os.path.join(newPath, file), clf, centroids, alpha)
print("PRUEBA CON VLAD")
elif representation == 3:
X = getFV(os.path.join(newPath, file), gmm)
y = annotation
c = c + 1
print("PRUEBA CON FV")
else:
if representation == 1:
X = np.vstack((X, getBOF(os.path.join(newPath, file), clf, nclusters)))
print("PRUEBA CON BOW")
elif representation == 2:
X = np.vstack((X, getVLAD(os.path.join(newPath, file), clf, centroids, alpha)))
print("PRUEBA CON VLAD")
elif representation == 3:
X = np.vstack((X, getFV(os.path.join(newPath, file), gmm)))
print("PRUEBA CON FV")
y = np.concatenate((y, annotation), axis = None)
print("Anotación finalizada.")
return(X,y)
Здесь я задаю путь для использования с вышеуказанной функцией.
path = "C:/img/soft"
И здесь я вызываю функцию setAnnotation()
, описанную ранее.
X_BW, y_BW = setAnnotation(path, 1, nclusters = clusters, clf = clf)
Точки ошибкина следующую строку в функции setAnnotation()
:
X = getVLAD(os.path.join(newPath, file), clf, centroids, alpha)
I Что я ищу, так это использование .replace("\\", "/")
после os.path.join
в функции setAnnotation()
.Но я не знаю, почему он указывает на строку 211, поскольку я использую 1
в качестве параметра representation
, который должен вводиться только в первом условном выражении.
¿Есть идеи?