こんにちは、私は顔のJPG画像のフォルダを見て顔認識トレーナーを実行しようとしています順番にエラーを返すOSErrorの:画像ファイルを識別することはできません「のdataSet/.DS_Store」
import os # importing the OS for path
import cv2 # importing the OpenCV library
import numpy as np # importing Numpy library
from PIL import Image # importing Image library
EigenFace = cv2.face.EigenFaceRecognizer_create(15) # creating EIGEN FACE RECOGNISER
FisherFace = cv2.face.FisherFaceRecognizer_create(2) # Create FISHER FACE RECOGNISER
LBPHFace = cv2.face.LBPHFaceRecognizer_create(1, 1, 7,7) # Create LBPH FACE RECOGNISER
path = 'dataSet' # path to the photos
def getImageWithID (path):
imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
FaceList = []
IDs = []
for imagePath in imagePaths:
faceImage = Image.open(imagePath).convert('L') # Open image and convert to gray
faceImage = faceImage.resize((110,110)) # resize the image so the EIGEN recogniser can be trained
faceNP = np.array(faceImage, 'uint8') # convert the image to Numpy array
ID = int(os.path.split(imagePath)[-1].split('.')[1]) # Retreave the ID of the array
FaceList.append(faceNP) # Append the Numpy Array to the list
IDs.append(ID) # Append the ID to the IDs list
cv2.imshow('Training Set', faceNP) # Show the images in the list
cv2.waitKey(1)
return np.array(IDs), FaceList # The IDs are converted in to a Numpy array
IDs, FaceList = getImageWithID(path)
Traceback (most recent call last):
File "/Users/jef/PycharmProjects/testProject/Python/Trainer_All.py", line 28, in <module>
IDs, FaceList = getImageWithID(path)
File "/Users/jef/PycharmProjects/testProject/Python/Trainer_All.py", line 19, in getImageWithID
faceImage = Image.open(imagePath).convert('L') # Open image and convert to gray
File "/Users/jef/venv1/lib/python3.6/site-packages/PIL/Image.py", line 2452, in open
% (filename if filename else fp))
OSError: cannot identify image file 'dataSet/.DS_Store'
フォルダーのdataSetが存在し、私のMacでコードを実行しています。最新のバージョンのピロー、numpyとcv2をOSGrrorで検索しましたが、この特定の問題の解決にはあまり役に立ちませんでした。何か案は?
...イメージではない '.DS_Store'を読み込もうとしています。フォルダから削除します。または単に 'imagePaths'で' .DS_Store'を削除してください。もっと簡単に 'glob'を使い、' .jpg'や '.png'で終わるファイルや画像の拡張子をつかんでください。 –
私はフォルダをチェックして、何も表示されませんでした。 '.DS_Store'はいくつかの.jpg画像だけです。グロブを実装するためにコードを変更する方法を教えていただけますか? – Purple82
macOSは、あなたが訪問するフォルダに '.DS_Store'ファイルを挿入して、OSが物事をより速く読み込めるようにします。それはフォルダの中などのアイコンのための設定を保持します。 '.'で始まるファイルは、Finderウィンドウ内では通常見えない隠しファイルです。ターミナルのフォルダに移動すると、 'ls -a'でそのフォルダが表示されます。ターミナルの中で 'rm .DS_Store'を使ってそれを削除することはできますが、次にFinderでフォルダを表示したときにmacOSがそれを再度置くことがあります。 –