Когда вы делаете
ret, img = video.read()
Вы делаете снимок. В противном случае вы не сможете обнаружить лица в этом кадре, не так ли?
Полагаю, вы спрашивали о сохранении рамки в виде изображения.
Вы просто должны проверить, есть ли лица, и сохранить их, используя cv2.imwrite
.
Следующий код сохраняет в текущем каталоге изображение, а имена файлов нумеруются в порядке возрастания:
count = 0
while True:
ret, img = video.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.05,
minNeighbors=5)
if (len(faces) != 0)
cv2.imwrite('face_image_%d.png' % count)
count += 1
Возможно, есть лучшие способы, но это показывает основную концепцию.