如何编码照片并将其与网络摄像头输入进行比较?

Posted

技术标签:

【中文标题】如何编码照片并将其与网络摄像头输入进行比较?【英文标题】:how encode photo and compare it with webcam input? 【发布时间】:2021-01-18 13:02:37 【问题描述】:

我正在尝试获取图像数量并将它们与网络摄像头进行比较,但它只为我提供了文件中的 1 个条目。这是我的代码:

import cv2
import numpy as np
import face_recognition
import os

path = 'pics'
images = []
classNames = []
myList = os.listdir(path)
print(myList)
for cl in myList:
    curImg = cv2.imread(f'path/cl')
    images.append(curImg)
    classNames.append(os.path.splitext(cl)[0])
print(classNames)


def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]

        encodeList.append(encode)



    return encodeList

encodeListknown = findEncodings(images)
print(findEncodings(images))

cap = cv2.VideoCapture(0)


while True:
    success, img = cap.read()
    imgs = cv2.resize(img,(0,0),None,0.25,0.25)
    imgs = cv2.cvtColor(imgs, cv2.COLOR_BGR2RGB)
    facesCurframe = face_recognition.face_locations(imgs)
    encodescurframe = face_recognition.face_encodings(imgs,facesCurframe)

    for encodeface, faceloc in zip(encodescurframe,facesCurframe):
        matches = face_recognition.compare_faces(encodeListknown,encodeface)
        facedis = face_recognition.face_distance(encodeListknown,encodeface)
        print(facedis)

这个程序假设从选定的文件中获取图像并转换为黑白,然后将照片与网络摄像头前的人进行比较 我该怎么办?

【问题讨论】:

【参考方案1】:

您过早地退出了编码功能。 return 语句需要在循环之外:

def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]

        encodeList.append(encode)



    return encodeList  ## <-- Move back the indentation by 1 level

【讨论】:

非常感谢,但是在我将其移回后,它告诉我“列表索引超出范围”,我尝试删除 [0],但最后它给出了另一个错误 谢谢它解决了我不知道怎么解决但它没有给我任何错误!!!

以上是关于如何编码照片并将其与网络摄像头输入进行比较?的主要内容,如果未能解决你的问题,请参考以下文章

如何生成随机数并将其与令牌输入进行比较?

C# 9/10 .net 6 中基于网络摄像头的对象扫描器 [关闭]

怎么在Dshow中判断真实摄像头与虚拟摄头

译如何使用Vue捕获网络摄像头视频

phpmyadmin 与 java。有没有办法从 phpmyadmin 获取字符串并将其与键盘输入进行比较?

人工智能的图像识别过程阐述