Python 在异常期间生成keyrerror:';Id';
实际上,我正在尝试跟踪图像,当我单击“跟踪图像”按钮时,它会打开相机,但会提供与Id相关的异常 我已将数据保存在CSV(Excel)文件中,图像存储在文件夹中。Python 在异常期间生成keyrerror:';Id';,python,numpy,opencv,Python,Numpy,Opencv,实际上,我正在尝试跟踪图像,当我单击“跟踪图像”按钮时,它会打开相机,但会提供与Id相关的异常 我已将数据保存在CSV(Excel)文件中,图像存储在文件夹中。 因为我已经训练了文件夹中存储图像的数据(YML格式)。 请帮助我删除此错误 def TrackImages(): recognizer = cv2.face_LBPHFaceRecognizer.create() recognizer.read("TrainingImageLabel\Trainner.yml")
因为我已经训练了文件夹中存储图像的数据(YML格式)。
请帮助我删除此错误
def TrackImages():
recognizer = cv2.face_LBPHFaceRecognizer.create()
recognizer.read("TrainingImageLabel\Trainner.yml")
harcascadePath = "I:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(harcascadePath);
df = pd.read_csv("StudentDetails\studentDetails.csv",header=0,encoding = 'unicode_escape')
cam = cv2.VideoCapture(0)
font = cv2.FONT_HERSHEY_SIMPLEX
col_names = ['Id','Name','Date','Time']
attendence = pd.DataFrame(columns = col_names)
while True:
ret, im = cam.read()
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.2, 5)
for (x,y,w,h) in faces:
cv2.rectangle(im, (x,y), (x+w,y+h), (255,0,0),2)
Id, conf = recognizer.predict(gray[y:y+h, x:x+w])
if (conf <50):
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
aa = df.iloc[df['Id'] == Id]['Name'].values **Error generating line**
tt = str(Id)+"-"+aa
attendence.iloc[len(attendence)] = [Id,aa,date,timeStamp]
else:
Id = 'Unknown'
tt = str(Id)
if(conf>75):
noOfFile = len(os.listdir("ImagesUnknown"))+1
cv2.imwrite("ImagesUnknown\Image"+str(noOfFile)+".jpg", im[y:y+h,x:x+w])
cv2.putText(im.str(tt), (x,y+h), font, 1,(255,255,255),2)
attendence= attendence.drop_duplicates(subset = ['Id'], keep='first')
cv2.imshow('im',im)
if (cv2.waitKey(1) == ord('q')):
break
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
Hour,Minute,Second = timeStamp.split(":")
fileName = "Attendence\Attendence_" +date+"_"+ Hour+"-"+Minute+"-"+Second+".csv"
attendence.to_csv(fileName,index=False)
cam.release()
cv2.destroyAllWindows()
res = attendence
message1.configure(text = res)```
def TrackImages():
recognizer=cv2.face\LBPHFaceRecognizer.create()
识别器.read(“TrainingImageLabel\trainer.yml”)
harcascadePath=“I:\\opencv\\build\\etc\\haarcascade\\haarcascade\u frontalface\u default.xml”
faceCascade=cv2.cascade分类器(harcascadePath);
df=pd.read\u csv(“StudentDetails\StudentDetails.csv”,头=0,编码='unicode\u escape')
cam=cv2.视频捕获(0)
font=cv2.font\u HERSHEY\u SIMPLEX
col_Name=['Id'、'Name'、'Date'、'Time']
Attentience=pd.DataFrame(列=列名称)
尽管如此:
ret,im=cam.read()
灰色=cv2.CVT颜色(im、cv2.COLOR\U BGR2GRAY)
面=面级联。检测多尺度(灰色,1.2,5)
对于面中的(x,y,w,h):
cv2.矩形(im,(x,y),(x+w,y+h),(255,0,0),2)
Id,conf=recognizer.predict(灰色[y:y+h,x:x+w])
如果(形态75):
noOfFile=len(os.listdir(“ImagesUnknown”)+1
cv2.imwrite(“ImagesUnknown\Image”+str(noOfFile)+.jpg”,im[y:y+h,x:x+w])
cv2.putText(im.str(tt),(x,y+h),字体,1,(255255),2)
Attendance=Attendance.drop_重复项(子集=['Id'],保留='first')
cv2.imshow('im',im)
如果(cv2.waitKey(1)=ord('q')):
打破
ts=时间。时间()
date=datetime.datetime.fromtimestamp(ts).strftime(“%Y-%m-%d”)
timeStamp=datetime.datetime.fromtimestamp(ts).strftime(“%H:%M:%S”)
小时、分钟、秒=时间戳。拆分(“:”)
fileName=“出席\出席”+日期+“\u”+小时+“-”+分钟+“-”+秒+“.csv”
attendence.to_csv(文件名,索引=False)
cam.release()
cv2.destroyAllWindows()
res=注意力
消息1.配置(text=res)```
您想在这里完成什么im
属于numpy类型。ndarray
,tt
已经属于str
类型。可能应阅读:.putText(im,tt,
。阅读什么对象类有str
方法?@hpaulj抱歉,你能说得更清楚一点,以便我能向你提供你所要求的正确细节。谢谢!@stovfl嘿,非常感谢你给我宝贵的时间。我可以通过你的支持解决这个问题,但现在又发生了一个错误,请帮帮我。我正在编辑我的帖子。请注意。你的编辑显著地改变了问题。你应该问一个新问题!
def TrackImages():
recognizer = cv2.face_LBPHFaceRecognizer.create()
recognizer.read("TrainingImageLabel\Trainner.yml")
harcascadePath = "I:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(harcascadePath);
df = pd.read_csv("StudentDetails\studentDetails.csv",header=0,encoding = 'unicode_escape')
cam = cv2.VideoCapture(0)
font = cv2.FONT_HERSHEY_SIMPLEX
col_names = ['Id','Name','Date','Time']
attendence = pd.DataFrame(columns = col_names)
while True:
ret, im = cam.read()
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.2, 5)
for (x,y,w,h) in faces:
cv2.rectangle(im, (x,y), (x+w,y+h), (255,0,0),2)
Id, conf = recognizer.predict(gray[y:y+h, x:x+w])
if (conf <50):
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
aa = df.iloc[df['Id'] == Id]['Name'].values **Error generating line**
tt = str(Id)+"-"+aa
attendence.iloc[len(attendence)] = [Id,aa,date,timeStamp]
else:
Id = 'Unknown'
tt = str(Id)
if(conf>75):
noOfFile = len(os.listdir("ImagesUnknown"))+1
cv2.imwrite("ImagesUnknown\Image"+str(noOfFile)+".jpg", im[y:y+h,x:x+w])
cv2.putText(im.str(tt), (x,y+h), font, 1,(255,255,255),2)
attendence= attendence.drop_duplicates(subset = ['Id'], keep='first')
cv2.imshow('im',im)
if (cv2.waitKey(1) == ord('q')):
break
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
Hour,Minute,Second = timeStamp.split(":")
fileName = "Attendence\Attendence_" +date+"_"+ Hour+"-"+Minute+"-"+Second+".csv"
attendence.to_csv(fileName,index=False)
cam.release()
cv2.destroyAllWindows()
res = attendence
message1.configure(text = res)```