Это код для кнопки opencv2 Takeimage.
Она не работает должным образом, только камера светится, но интерфейс камеры не отображается:
def TakeImage():
Id=(txt.get())
name=(txt2.get())
if(is_number(Id) and name.isalpha()):
Video= cv2.VideoCapture(0)
harcascadePath = "haarcascade_frontalfacedafults_.xml"
detector=cv2.CascadeClassifier(harcascadePath)
sampleNum=0
while(True):
ret,img=Video.read();
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces=detector.DetectMultiScale(gray,1.2,5);
for(x,y,w,h) in faces:
cv2.recatangle(img,(x,y),(x+w,y+h),(255,0,0),2)
sampleNum=sampleNum+1
cv2.imwrite("TrainImages\ "+name +"."+Id +'.'+str(samlpeNum)+".jpg",gray[y:y+h,x:x+h])
cv2.imshow('Frame',img)
if cv2.waitKey(100) &0XFF == ord('s'):
break
elif sample>60:
break
Video.release()
cv2.destroyAllWindows()
res = "Images Saved for ID: "+ Id + " Name : "+ name
row = [Id, Name]
with open ('studentDetails\studentDetails.csv','a+') as csvFile:
writer = csv.writer(csvFile)
writer.writerow(row)
csvFile.close()
message.configure(text=res)
else:
if(is_number(Id)):
res ="Enter Alphabetical Name"
message.configure(text= res)
if (name.isalpha()):
res="Enter Numberic Id"
message.configure(text=res)
Ошибка отображения:
Исключение в обратном вызове Tkinter Traceback (последний вызов последним):
Файл "C: \ Users \ Lenovo \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ tkinter__init __. Py", строка 1705, в вызове < / strong> return self.func (* args) Файл «C: \ Users \ Lenovo \ Desktop \ face reconiger system.py», строка 87, в TakeImage Faces = Detector.DetectMultiScale (серый, 1.2,5); AttributeError: объект 'cv2.CascadeClassifier' не имеет атрибута 'DetectMultiScale'