2017-02-26 2 views
-1

카메라 및 정지 이미지를 사용하여 캡처 한 비디오를 혼합하고 자습서는 두 개의 스틸 이미지에서 작동하는 코드를 비디오 (프레임) 및 스틸 이미지로 이동하는 방법을 제공합니까?비디오 및 정지 이미지 블렌드

+0

안녕하십니까. 요청 방법 섹션을 읽어보십시오. 튜토리얼을 요구하는 질문은 싫어하는 경향이 있습니다. 또한 주제에 관한 질문이 될지라도 조금 명확하게 설명해야합니다. 당신이 찾고있는 것은 그린 스크린 (또는 컬러 합성)이라고 자주 불리는 것이지만, 단지 오버레이 될 수도 있습니다. – Foon

+0

도움을 주셔서 감사합니다. vid = cap.read()가 아니면 문제는 –

답변

0

"블렌딩"이란 무엇을 의미하는지에 대한 설명이 나와 있지 않습니다. 비디오의 각 프레임에 의 이미지를 오버레이하려고한다고 가정합니다. 이렇게하려면, 당신은 비디오의 모든 프레임 루프에서 addWeighted() 메서드를 사용하여 그림과 같이 : 문제는 여기에, 이제 비디오 웹캠을 통해 img1로 캡처이 아마도 크기였다

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

으로 해결됩니까? –

+2

내 말은 함수 addWeighted에서 변수 vid를 사용했지만 아직 설정되지 않았다는 것입니다. –

+0

이 변경되었습니다. 헤드 업에 감사드립니다. –

0

, img2는 정지 이미지입니다.

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)