Could not broadcast input array from shape

Messages postés
59
Date d'inscription
mardi 23 avril 2019
Statut
Membre
Dernière intervention
16 septembre 2019
-
Bonjour,

Je suis débutante en python, je voulais afficher une vidéo sur l'écran .

J'ai eu cette erreur en lançant mon code :

File "demoprotoupsilon.py", line 217, in PlayVideo
bg[y1:y2, x1:x2] = frame
ValueError: could not broadcast input array from shape (360,480,3) into shape (360,480,4)

le bout de code est:

def PlayVideo(age):
   print("toto");
   birthyear = datetime.datetime.now().year - age
   videoFilePath = f"media/video/decades/{int(round(birthyear, -1))}.mp4"
   print(videoFilePath)
   vid = cv2.VideoCapture(videoFilePath)
   bg = GetDisplayImgContent()
   if vid.isOpened():
      print("in vidopen")
      while vid.isOpened():
         print("in while")
         ret, frame = vid.read()
         if ret:
            print("img OK")
            #frame = cv2.bitwise_and( frame, frame)
            #cv2.add(bg, frame)
            origVidImgHeight, origVidImgWidth = frame.shape[:2]
            print(frame.shape)
            #orig_mask = frame[:,:,2]
            #orig_mask_inv = cv2.bitwise_not(orig_mask)
      
      
            xVidPosition = int((screenW / 3)*2)
            yVidPosition = int((screenH / 4)*3)
      
            x1 = int(xVidPosition - (origVidImgWidth / 2))
            x2 = int(xVidPosition + (origVidImgWidth / 2))
            y1 = int(yVidPosition - (origVidImgHeight / 2))
            y2 = int(yVidPosition + (origVidImgHeight / 2))

            roi = bg[y1:y2, x1:x2]
            #roi_bg = cv2.bitwise_and( roi, roi, mask = orig_mask_inv)
            #roi_fg = cv2.bitwise_and( frame, frame, mask = orig_mask)
      
            #dst = cv2.add(roi_bg, roi_fg)
      
            bg[y1:y2, x1:x2] = frame
            SetDisplayImg(bg, "")
         else:
            break
      vid.release()
      cv2.destroyAllWindows()


Avez-vous une idée svp?

Merci d'avance de votre aide.


Configuration: Linux / Chrome 76.0.3809.100
Afficher la suite