用opencv-python把动态图变成反色动态图
1、opencv读取动态图的方法和读取视频的方法一样。
cap = cv2.VideoCapture('0.gif')

2、新建一个视频解码器:
out = cv2.VideoWriter('0.avi',
cv2.VideoWriter_fourcc('M','J','P','G'),
10, (399,319))
opencv不能保存动态图,只能保存为视频?

3、每次读一帧图片,编辑这张图片,再把编辑好了的图片作为新视频里面的一帧:
while(True):
ret, frame = cap.read()
if ret == True:
frame=cv2.resize(frame,(399,319))
frame
for i in [0,1]:
frame[:,:,i]=frame[:,:,i]*1
out.write(frame)
else:
break

4、关闭cap和out:
cap.release()
out.release()
用ffmpeg把视频转化为动态图:
p='C:/Users/Administrator/Pictures/'
os.chdir(p)
os.system('ffmpeg -i 0.avi -f gif -y 00.gif')


5、把图片变成绿色:
……
for i in [0,2]:
frame[:,:,i]=frame[:,:,i]*0
……

6、……
for i in [1,2]:
frame[:,:,i]=frame[:,:,i]*0
frame[:,:,0]=frame[:,:,0]*2
……

7、……
for i in [1]:
frame[:,:,i]=frame[:,:,i]*0
……

8、……
for i in [0]:
frame[:,:,i]=frame[:,:,i]*0
……

9、……
for i in [2]:
frame[:,:,i]=frame[:,:,i]*0
……

10、反色动态图:
……
frame=255-frame
……
