2017-02-26 16 views
-1

カメラと静止画像を使ってキャプチャしたビデオをブレンドしたいのですが、チュートリアルでは2つの静止画像に対応するコードをビデオ(フレーム)と静止画像でどうやって使うのでしょうか?ビデオと静止画像を融合する

+0

ようこそ。お問い合わせ方法のセクションをお読みください。チュートリアルを尋ねる質問はぶつかる傾向があることに注意してください。また、あなたがそれをトピックの質問にすることができる場合でも、少し明確にする必要があることに注意してください。あなたが探しているのは、しばしばグリーンスクリーン(またはカラー合成)と呼ばれるものかもしれませんが、オーバーレイしているだけかもしれません。 – Foon

+0

助けてくれてありがとうございます.vid = cap.read()でないと、問題は –

答えて

0

「ブレンド」の意味を説明していません。私はあなたがビデオのフレームごとににイメージをオーバーレイしようとしていると仮定しています。示すようにこれを行うには、あなたは、ビデオの中でフレームごとにループでaddWeighted()メソッドを使用することができます。

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

問題は、おそらく2の大きさだった、今ここにウェブカメラを通じて撮影した映像がIMG1あり、 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) 
関連する問題