【发布时间】:2023-03-31 21:13:01
【问题描述】:
我有ValueError: invalid literal for int() with base 10: '.DS' 错误。我正在寻找一天的解决方案,但我无法解决它。我的目录不是空的。我正在尝试使用 OpenCV 训练人脸识别器。我正在尝试从我的train 目录中获取人脸照片,但我不能。
我的代码:
images = []
labels = []
for file in os.listdir('train/'):
image = cv2.imread('train/'+file, 0)
images.append(image)
labels.append(int(file.split('_')[0]))
火车上的照片被命名为1_001.pmg、1_002.pmg等等。我正在为我的愚蠢问题寻求您的帮助。谢谢!
ps。此代码来自@Fabian 的答案how to notify user if there are common faces detected between two directories with python and opencv
【问题讨论】:
-
您收到的堆栈跟踪中究竟有什么不清楚的地方?对我来说这听起来很明显,
.DS无法转换为 int。您的代码中只有一个地方可以进行转换,即for循环的最后一行。请注意,以点开头的文件名在大多数*nix系统中被归类为隐藏 文件。 -
感谢您的回复,我需要它作为整数,因为 faceRecognition.train 函数需要它。所以我必须将其转换为整数