如何修复下面的代码我收到 cv2.error [关闭]

Posted

技术标签:

【中文标题】如何修复下面的代码我收到 cv2.error [关闭]【英文标题】:How can ı fix the code below I am getting cv2.error [closed] 【发布时间】:2021-11-02 20:48:15 【问题描述】:
import numpy as np
import face_recognition
import cv2
import os
path="C:/Users/HP/Desktop/face1/img/known/"
images=list()
classnames=[]
my_list=os.listdir(path)
for i in my_list:
    currentim=cv2.imread(f'pathi')
    images.append(currentim)
    classnames.append(os.path.splitext(i)[0])
def findenc(images):
    encs=[]
    for img in images :
        img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
        encs.append(face_recognition.face_encodings(img)[0])
    return encs
encs=findenc(images)
print("encoding has ended")
cap=cv2.VideoCapture(0)
while True:
    success,img=cap.read()
    imgsize=cv2.resize(img,(0,0),None,0.25,0.25)
    imgsize=cv2.cvtColor(imgsize,cv2.COLOR_BGR2RGB)
    faces=face_recognition.face_locations(imgsize)[0]
    encodescurf=face_recognition.face_encodings(imgsize)[0]
    for encode,faceloc in zip(encodescurf,faces):
        matches=face_recognition.compare_faces(encs,encode)
        facedis=face_recognition.face_distance(encs,encode)

当我运行代码时我得到 cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-sn_xpupm\opencv\modules\imgproc\src\color .cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' 如何修复该错误

注意:cv2 版本是 '4.5.3' 我使用视觉工作室代码 它给出了第 16 行的错误

【问题讨论】:

如果您需要尽快得到一些东西,请雇用某人。请尊重其他也想得到问题答案的人。 【参考方案1】:

这个错误可能是因为图片加载不正确。检查 cv2.imread 或尝试:

encs = []
for i in my_list:
    img_path = os.path.join(path, i)
    currentim=cv2.imread(img_path) 
    classnames.append(os.path.splitext(i)[0])
    img=cv2.cvtColor(currentim,cv2.COLOR_BGR2RGB)
    encs.append(face_recognition.face_encodings(img)[0])

正确检查图像的路径。

os.path.join() Python 中的方法将各种路径组件连接起来,除了最后一个路径组件外,每个非空部分后面都只有一个目录分隔符('/')。如果要加入的最后一个路径组件为空,则在末尾放置一个目录分隔符('/')。

【讨论】:

它没有工作代码在第 16 行给出错误 嘿尽量避免不必要的功能和存储数据。用上面的代码替换函数和for循环后检查。 这个答案有什么意义? os.path.join?请指出这一点,因此很明显这是您答案的核心。路径的不正确连接可能是这里的一个问题,也可能是其他问题。这是假设太多了。

以上是关于如何修复下面的代码我收到 cv2.error [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

未定义的嵌套属性!如何修复它?

如何在列表中添加多个项目以获取修复字典键

如何修复:JSON.parse (<anonymous>) 位置 0 处的 JSON 中的意外标记 <

如何修复云错误“必须提供 api_key”

如何修复 SafeAreaLayoutGuide

如何清除未解决的导入'cv2'错误?