2017-02-26 7 views
-1

Ich möchte ein Video, das mit der Kamera und einem Standbild aufgenommen wurde, verschmelzen. Tutorials enthalten den Code, der für zwei Standbilder mit einem Video (Frame) und einem Standbild funktioniert.Mischen Sie ein Video und ein Standbild

+0

Willkommen bei SO. Bitte lesen Sie den Abschnitt Fragen. Beachten Sie, dass Fragen, die nach Tutorials fragen, eher verpönt sind. Beachten Sie auch, dass Sie ein wenig klarstellen müssen, auch wenn Sie es als eine Frage zum Thema bekommen können. Was du suchst, könnte sein, was oft als grüner Bildschirm (oder Farbzusammenstellung) bezeichnet wird, aber es könnte auch einfach überlagert sein. – Foon

+0

Danke für die Hilfe, das Problem ist gelöst –

Antwort

0

Ihre Frage erklärt nicht, was Sie unter "Blending" verstehen. Ich nehme an, dass Sie versuchen, ein Bild auf jeden Rahmen eines Videos zu überlagern. Um dies zu tun, können Sie die addWeighted() -Methode in einer Schleife für jeden Rahmen in dem Video verwendet werden, wie gezeigt:

img=cv2.imread("still_image.jpg"); 
cap = cv2.VideoCapture(0) 

while True: 

    ret,vid=cap.read() 
    result=cv2.addWeighted(img,0.5,vid,0.5,0) 
    cv2.imshow('overlay', result) 
    video.write(img) 
    if(cv2.waitKey(10) & 0xFF == ord('b')): 
      break 
+0

sollte es nicht vid = cap.read() sein? –

+2

was ich meine, ist verwendet Variable VID in Funktion AddWeighted noch nicht eingestellt wurde, –

+0

die Änderung vorgenommen. Danke für das Heads-up –

0

Die Frage vielleicht die Größe von zwei war, hier nun img1 durch Webcam-Video erfaßt, und img2 ist das Standbild

def add_two_images(img1,img2): 
    """Blends two images to one with different weights given to each""" 
    height, width, depth = img1.shape ## Needed when img1 is a jpeg image 
    img2 = cv2.resize(img2,(width, height)) 
    #print (img1.size, img2.shape) 
    dst = cv2.addWeighted(img1, 0.5, img2, 0.5, 0) 
    cv2.imshow('dst', dst) 
Verwandte Themen