J'essaie de réduire la taille du cadre/de la fenêtre de ma capture vidéo à 320x180
Mais je n'arrive pas à le faire. J'utilise une Windows Kinect pour Xbox One et sa connexion à mon PC à l'aide d'un adaptateur.
J'ai essayé de définir le cv2.CAP_PROP_FRAME_WIDTH
à 320 et cv2.CAP_PROP_FRAME_HEIGHT
à 180 mais une fois que j'essaie d'obtenir les valeurs, il retourne 1920 et 1080. J'ai également essayé d'installer et de réinstaller le SDK et les pilotes de Kinect.
import cv2
import numpy as np
vid = cv2.VideoCapture(0)
vid.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
vid.set(cv2.CAP_PROP_FRAME_HEIGHT, 180)
vid.set(cv2.CAP_PROP_FPS, 25)
print(vid.get(cv2.CAP_PROP_FPS))
print(vid.get(cv2.CAP_PROP_FRAME_WIDTH))
while True:
ret, frame = vid.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
vid.release()
cv2.destroyAllWindows()
Je voudrais aider à savoir où le problème provient de et, espérons-le, obtiendrez une solution.
Enfin j'ai trouvé cela résolu ce problème
Lorsque vous essayez de définir une résolution aléatoire, OpenCV définit la résolution la plus proche si cette résolution n'est pas disponible.
Vous pouvez exécuter ci-dessous la commande pour connaître toutes les résolutions disponibles de votre webcam.
uvcdynctrl -f
Et définir ces résolutions seulement. (Mes résolutions sur la webcam: 1280x720, 640x480, 640x360)
vid.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
vid.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
Référence: https://techverflow.net/2018/12/18/how-to-set-cv2-videocapture-image-size/