Hassaan_Malik Ответов: 0

Видеовход не обрабатывается в OPENCV


Я написал код, в который должен вставить видео в качестве входных данных. Затем я хочу извлечь лица из этого видео. Затем я хочу сохранить эти обнаруженные лица из видео в папке. Но мой код не работает. Он не показывает никаких выходных данных. Нужно ли ему какое-либо стороннее программное обеспечение? Пожалуйста, помогите мне. Вот что я попробовал.

Что я уже пробовал:

импорт cv2
импорт включает в себя как НП

face_classifier = cv2.CascadeClassifier('harcascades/haarcascade_frontalface_default.xml')
# обнаружение лица и возврат обрезанного лица
деф face_extractor(рис):
grey_scale = cv2.cvtColor(рис,cv2.COLOR_BGR2GRAY)
faces = face_classifier.detectMultiScale(grey_scale, 1.1, 5)
если лица есть ():
возврата нет
#обрезка найденных лиц
для (x, y, w, h) в Гранях:
обрезанный = img[y:y+h , x:x+w]
вернуть обрезанное

#видеовход

кап = cv2.Захватить Видео С('C:\Users\ADMIN\Desktop\frames.mp4')
#просто счетчик
количество = 0
#продолжая извлекать facess
пока это правда:
рэт рамка = кап.читать()
если face_extractor(frame) не является None:
количество +=1
лицо = cv2.размер(face_extractor(рамка),(400,400))
лицо = cv2.cvtColor(лицо,cv2.COLOR_BGR2GRAY)
file_storage = './Ул. набора данных/' + (граф) + '.в формате JPG'
cv2.жмурить(file_storage,лицо)
#поместите текст на линейное изображение в качестве подсчета
cv2.putText(face,str(count),(60,60),cv2.FONT_HERSHEY_COMPLEX,1,(0,255,0),2)
cv2.imshow("обрезанное лицо ",лицо)
еще:
печать ("лицо не найдено ... ")
проходить
если cv2.waitKey(1)==13 :
перерыв
кап.релиз()
cv2.destroyAllWindows()
печать ("готово. . . .")

0 Ответов