在python集中对多个编号的变量进行分组

2024-09-30 01:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,我正在尝试用python中的face_recognition库制作一个人脸识别应用程序,现在,我想创建一组有编号的变量。假设我以这种方式创建了变量

for j in range(1,500):
    exec('var_%d = face_recognition.load_image_file(path)' % (j))       

所以我得到了这些变量

var_1, var_2, var3, ... , var_500

在python中,为了避免一个接一个地编写,我如何创建这样一个集合:

known_encodings = [var_1, var_2, var_3, ... , var_500]  

编辑:

我使用的代码在这里

clases = '/home/workstation/Desktop/fv/foto ideal/known/'
predictor = '/home/workstation/Desktop/fv/foto ideal/unknown/'
from os import listdir
with tf.device('/gpu:1'):


    names = [l for l in listdir(clases)]

    j=0
    for name in names:
        try:
            exec('known_%d = face_recognition.load_image_file(clases+ "%s")' %(j,name))
            exec('biden_encoding_%d = face_recognition.face_encodings(known_%d)[0]'%(j,j))
            print(j)
            j +=1
        except:
            pass

knowns_encodings = [biden_encoding_0,biden_encoding_1,biden_encoding_2,biden_encoding_3,biden_encoding_4,biden_encoding_5,biden_encoding_6,biden_encoding_7,biden_encoding_8,biden_encoding_9,biden_encoding_10,biden_encoding_11,biden_encoding_12,biden_encoding_13,biden_encoding_14,biden_encoding_15,biden_encoding_16,biden_encoding_17,biden_encoding_18,biden_encoding_19,biden_encoding_20,biden_encoding_21,biden_encoding_22,biden_encoding_23,biden_encoding_24,biden_encoding_25,biden_encoding_26,biden_encoding_27,biden_encoding_28,biden_encoding_29,biden_encoding_30,biden_encoding_31,biden_encoding_32,biden_encoding_33,biden_encoding_34,biden_encoding_35,biden_encoding_36,biden_encoding_37,biden_encoding_38,biden_encoding_39,biden_encoding_40,biden_encoding_41,biden_encoding_42,biden_encoding_43,biden_encoding_44,biden_encoding_45,biden_encoding_46,biden_encoding_47,biden_encoding_48,biden_encoding_49,biden_encoding_50,biden_encoding_51,biden_encoding_52,biden_encoding_53,biden_encoding_54,biden_encoding_55,biden_encoding_56,biden_encoding_57,biden_encoding_58,biden_encoding_59,biden_encoding_60,biden_encoding_61,biden_encoding_62,biden_encoding_63,biden_encoding_64,biden_encoding_65,biden_encoding_66,biden_encoding_67,biden_encoding_68,biden_encoding_69,biden_encoding_70,biden_encoding_71,biden_encoding_72,biden_encoding_73,biden_encoding_74,biden_encoding_75,biden_encoding_76,biden_encoding_77,biden_encoding_78,biden_encoding_79,biden_encoding_80,biden_encoding_81,biden_encoding_82,biden_encoding_83,biden_encoding_84,biden_encoding_85,biden_encoding_86,biden_encoding_87,biden_encoding_88,biden_encoding_89,biden_encoding_90,biden_encoding_91,biden_encoding_92,biden_encoding_93,biden_encoding_94,biden_encoding_95,biden_encoding_96,biden_encoding_97,biden_encoding_98,biden_encoding_99,biden_encoding_100,biden_encoding_101,biden_encoding_102,biden_encoding_103,biden_encoding_104,biden_encoding_105,biden_encoding_106,biden_encoding_107,biden_encoding_108,biden_encoding_109,biden_encoding_110,biden_encoding_111,biden_encoding_112,biden_encoding_113,biden_encoding_114,biden_encoding_115,biden_encoding_116,biden_encoding_117,biden_encoding_118,biden_encoding_119,biden_encoding_120,biden_encoding_121,biden_encoding_122,biden_encoding_123,biden_encoding_124,biden_encoding_125,biden_encoding_126,biden_encoding_127,biden_encoding_128,biden_encoding_129,biden_encoding_130,biden_encoding_131,biden_encoding_132,biden_encoding_133,biden_encoding_134,biden_encoding_135,biden_encoding_136,biden_encoding_137,biden_encoding_138,biden_encoding_139,biden_encoding_140,biden_encoding_141,biden_encoding_142,biden_encoding_143,biden_encoding_144,biden_encoding_145,biden_encoding_146,biden_encoding_147,biden_encoding_148,biden_encoding_149]

unknown_image = face_recognition.load_image_file(predictor+"12.jpg")
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces([knowns_encodings], unknown_encoding, tolerance=0.50)

print(results)

Tags: inimageforvarloadunknownencodingfile
1条回答
网友
1楼 · 发布于 2024-09-30 01:28:55

我不确定我是否理解这个用例。如果您提供上下文,我们可以帮助提供更好的结果

但你的问题的答案是

for i in range(1,501)]:
    exec("var_{0} = None".format(i) )

在以上和评论中提供更多上下文后进行编辑>

试着替换

exec('known_%d = face_recognition.load_image_file(clases+ "%s")' %(j,name))
exec('biden_encoding_%d = face_recognition.face_encodings(known_%d)[0]'%(j,j)) 

用这个

known_dict[j] = face_recognition.load_image_file(clases+name)
known_dict[j] = face_recognition.face_encodings(known_dict[j])

当然,请确保初始化: 所以在前面

known_dict = {}
biden_dict = {}

相关问题 更多 >

    热门问题