我正在使用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)
答案 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