如何从数据库中为 Facial_Recognition 创建变量

我试图能够从具有名称和图像文件名的数据库中提取数据,然后将其放入face_recognitionPython 程序中。但是,对于我使用的代码,程序通过调用具有不同名称的变量来学习人脸。


如何根据数据库中的数据量创建变量?


有什么更好的方法可以解决这个问题?


first_image = face_recognition.load_image_file("first.jpg")


first_face_encoding = face_recognition.face_encodings(first_image)[0]


second_image = face_recognition.load_image_file("second.jpg")


biden_face_encoding = face_recognition.face_encodings(second_image)[0]


一只萌萌小番薯
浏览 164回答 1
1回答

汪汪一只猫

您可以使用数组而不是将每个图像/编码存储在单个变量中,并从for循环中填充数组。假设您可以将文件名从first.jpg, second.jpg...更改为1.jpg, 2.jpg... 您可以这样做:numberofimages = 10 # change this to the total number of imagesimages = [None] * (numberofimages+1) # create an array to store all the imagesencodings = [None] * (numberofimages+1) # create an array to store all the encodingsfor i in range(1, numberofimages+1):    filename = str(i) + ".jpg" # generate image file name (eg. 1.jpg, 2.jpg...)    # load the image and store it in the array    images[i] = face_recognition.load_image_file(filename)    # store the encoding    encodings[i] = face_recognition.face_encodings(images[i])[0]然后您可以访问例如。第三张图像和第三个编码是这样的:image[3]encoding[3]如果无法更改图像文件名,您可以将它们存储在字典中并执行以下操作:numberofimages = 3 # change this to the total number of imagesimages = [None] * (numberofimages+1) # create an array to store all the imagesencodings = [None] * (numberofimages+1) # create an array to store all the encodingsfilenames = {    1: "first",    2: "second",    3: "third"}for i in range(1, numberofimages+1):    filename = filenames[i] + ".jpg" # generate file name (eg. first.jpg, second.jpg...)    print(filename)    # load the image and store it in the array    images[i] = face_recognition.load_image_file(filename)    # store the encoding    encodings[i] = face_recognition.face_encodings(images[i])[0]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python