cv2 Python图像混合“淡入淡出”过渡

时间:2015-02-21 20:06:52

标签: python opencv computer-vision

我正在使用cv2 for Python。我非常接近在两个图像之间创建一个“混合渐变”过渡,但我没有得到我希望的结果。

我想要做的是当我的fadein变量计数时,我将其传递给cv2.addWeighted函数以创建一个随着我的fadein变量更改而更改的混合。

所以,总结......电影交叉淡入淡出效果。发生的是fadein变量计数,当它达到最大范围时,图像跳转到下一个。

[编辑] 我的问题是cv对象没有与我的动态fadein变量同时运行。

def fadeIn (img1, img2): #pass images here to fade between
        while True:
                for FADEIN in range(0,10):
                        fadein = FADEIN/10.0
                        fadeout=1.0
                        fadeout -= 0.1
                        dst = cv2.addWeighted( img1, fadeout, img2, fadein, -1)#linear $
                        cv2.imshow('window', dst)
                        print fadein
                        time.sleep(0.05);
                        if fadein == 1.0: #blendmode mover
                                fadein = 1.0
                return # exit function

while True:
  if Position == 55:
  fadeIn(dog, panda)

2 个答案:

答案 0 :(得分:1)

您的代码也缺少交叉淡入淡出的反向(1-fadein)。我还添加了动态长度设置。

def fadeIn (img1, img2, len=10): #pass images here to fade between
    while True:
        for IN in range(0,len):
            fadein = IN/float(len)
            dst = cv2.addWeighted( img1, 1-fadein, img2, fadein, 0)
            cv2.imshow('window', dst)
            cv2.waitKey(1)
            print fadein

答案 1 :(得分:0)

啊,我错过了cv2.waitKey(1)

我修改过的'混合'图像之间的过渡功能:

def fadeIn (img1, img2): #pass images here to fade between
        #while True:
        for IN in range(0,10):
                fadein = IN/10.0
                dst = cv2.addWeighted( img1, fadein, img2, fadein, 0)#linear $
                cv2.imshow('window', dst)
                cv2.waitKey(1)
                print fadein
                time.sleep(0.05)
                if fadein == 1.0: #blendmode mover
                        fadein = 1.0
        return # exit function