J'essaie d'accéder file_name
dynamiquement à partir de l'utilisateur, puis le passer à videoCapture(file_name)
, puis le traiter.cv2.videoCapture (nom de fichier) attribuer un nom de fichier dynamiquement (fermé)
code:
import cv2
import numpy as np
import os
import sqlite3
import pickle
from PIL import Image
import sys
faceDetect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml');
rec = cv2.createLBPHFaceRecognizer();
'''
Dynamically accessing the fileName
Error seems to be here in the following couple of codes
Note: i am assigning file_name as <"test.mp4">
'''
file_name = raw_input("Enter file name: ")
print file_name
cam = cv2.VideoCapture(file_name)
while cam.isOpened():
ret,img = cam.read()
if ret == True:
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces = faceDetect.detectMultiScale(gray,1.3,5);
for(x,y,w,h) in faces :
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
id,conf=rec.predict(gray[y:y+h,x:x+w])
'''
Few lines of code
'''
cv2.imshow("Face",img);
if (cv2.waitKey(1) == ord('q')):
break;
else :
print ('ret is false')
break
cam.release()
cv2.destroyAllWindows()
il montre aucune erreur, mais il n'exécute pas la boucle while(cam.isOpened):
. Ai-je raté quelque chose?
si vous hardcode le nom de fichier fonctionne? –
oui. cela fonctionne bien si cam = cv2.VideoCapture (nom_fichier) est remplacé par cam = cv2.VideoCapture ("test.mp4"). –
J'ai essayé votre code sur ma machine, a bien fonctionné. Que dit ret? est-ce vrai ou pas? J'ai déjà observé que VideoCapture ne génère pas d'erreur dans de nombreux cas. – harshkn