Unable to display text and bounded box around the face

I have typed the code as mentioned in the video but it is not displaying the text and bounding box around the face although the file is getting loaded :

the code is as follows :

import numpy as np
import cv2
import os

KNN CODE

def distance(v1,v2):

return np.sqrt(((v1-v2)**2).sum())

def knn(train,test,k=5):
dist = []

for i in range(train.shape[0]):
	# Get the vector and label
	ix = train[i,:-1]
	iy = train[i,-1]

	
	d = distance(test, ix)
	dist.append([d,iy])


dk = sorted(dist, key=lambda x:x[0])[:k]

labels = np.array(dk)[:, -1]


output = np.unique(labels, return_count=True)

index = np.argmax(output[1])
return output[0][index]

cap = cv2.VideoCapture(0)

face_cascade = cv2.CascadeClassifier(‘C:\Users\Charu Anant Rajput\Desktop\Python\opencv\data\haarcascades\haarcascade_frontalface_alt.xml’)

skip = 0
dataset_path = ‘./data/’

face_data = []
labels = []

class_id = 0
names = {} #Mapping between the id-name

for fx in os.listdir(dataset_path):
if(fx.endswith(’.npy’)):
names[class_id] = fx[:-4] #slicing the last 4 characters to create mapping between class_id and name
print("Loaded " + fx)
data_item = np.load(dataset_path+fx)
face_data.append(data_item)

	target = class_id*np.ones((data_item.shape[0],))
	class_id+=1
	labels.append(target)

face_dataset = np.concatenate(face_data,axis=0)
face_labels = np.concatenate(labels,axis=0).reshape((-1,1))

print(face_dataset.shape)
print(face_labels.shape)

trainset = np.concatenate((face_dataset,face_labels),axis=1)

print(trainset.shape)

while True:
ret,frame = cap.read()
if ret == False:
continue

faces = face_cascade.detectMultiScale(frame,1.3,5)

#iterate over the faces
for face in faces:
	x,y,w,h = face

	
	offset = 10
	face_section = frame[y-offset:y+h+offset,x-offset:x+w+offset]
	face_section = cv2.resize(face_section,(100,100))

	#call the knn method to give the output
	out = knn(trainset,face_section.flatten())

	
	pred_name = name[int(out)]
	cv2.putText(frame,pred_name,(x,y-10),cv2,FONT_HERSHEY_SIMPLEX,1,(255,0,0),2,cv2.LINE_AA)
	cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,255),2)

cv2.imshow("Faces",frame)

key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
	break

cap.release()
cv2.destroyAllWindows()

Hello @Charu510, you need to press key q for stopping the video as you have mentioned letter q that will exit you from your loop. Pls try that if that works and in case it doesn’t share the code in ticks so that it is well formatted. Moreover if the code is exactly same as in video or not you can refer the code from github.
I hope it is clear to you, in case of any issue pls let me know.
Thanks :slight_smile:


This is the code I had written following the video.

But I am neither getting the bounding box nor the text from the folder.

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.