如何修复下面的代码我收到 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章