Je peux obtenir la taille de l'image, comme ceci:
import cv2
img = cv2.imread('my_image.jpg',0)
height, width = img.shape[:2]
Qu'en est-il de la vidéo?
Il donne width
et height
du fichier ou de la caméra sous forme de float (vous devrez peut-être convertir en entier)
Mais cela me donne toujours 0.0 FPS
.
import cv2
vcap = cv2.VideoCapture('video.avi') # 0=camera
if vcap.isOpened():
# get vcap property
width = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH) # float
height = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT) # float
# or
width = vcap.get(3) # float
height = vcap.get(4) # float
# it gives me 0.0 :/
fps = vcap.get(cv2.cv.CV_CAP_PROP_FPS)
Il semble que cela puisse fonctionner fps = vcap.get(7)
mais je l’ai vérifiée sur un seul fichier.
Pour la version 3.3.1, les méthodes ont changé. Vérifiez ce lien pour connaître les modifications: https://docs.opencv.org/3.3.1/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d
Au lieu de cv2.cv.CV_CAP_PROP_FRAME_WIDTH
, utilisez cv2.CAP_PROP_FRAME_WIDTH
et d’autres, selon le cas, à partir du lien ci-dessus.
width = vcap.get(cv2.CAP_PROP_FRAME_WIDTH )
height = vcap.get(cv2.CAP_PROP_FRAME_HEIGHT )
fps = vcap.get(cv2.CAP_PROP_FPS)
ou
width = vcap.get(3)
height = vcap.get(4)
fps = vcap.get(5)
cv2.__version__
'3.4.3'
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))