Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用过滤器在OpenCV中保存视频_Python_Python 3.x_Opencv - Fatal编程技术网

Python 使用过滤器在OpenCV中保存视频

Python 使用过滤器在OpenCV中保存视频,python,python-3.x,opencv,Python,Python 3.x,Opencv,我正在尝试使用open CV保存一个视频,其想法是将视频帧从彩色到灰度交替几秒钟。当我保存时,视频仅保存彩色帧 import cv2 def saving(cap): width=cap.get(cv2.CAP_PROP_FRAME_WIDTH) height=cap.get(cv2.CAP_PROP_FRAME_HEIGHT) fps= cap.get(cv2.CAP_PROP_FPS) fourcc=cv2.VideoWriter_fourcc(*'XVID

我正在尝试使用open CV保存一个视频,其想法是将视频帧从彩色到灰度交替几秒钟。当我保存时,视频仅保存彩色帧

import cv2

def saving(cap):
    width=cap.get(cv2.CAP_PROP_FRAME_WIDTH)
    height=cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
    fps= cap.get(cv2.CAP_PROP_FPS)
    fourcc=cv2.VideoWriter_fourcc(*'XVID')
    out=cv2.VideoWriter('Project11.mp4',fourcc,fps,(int(width),int(height)))
    return (out)


def first4seconds(video):
    c=saving(video)
    while(video.isOpened()):
        print(video.get(cv2.CAP_PROP_POS_MSEC))
        ret, frame = video.read()
        if ret==True:
            if cv2.waitKey(25) & 0xFF == ord('q'):
                    break
        else:
            break

    if(500<=int(video.get(cv2.CAP_PROP_POS_MSEC))<1000 or 2000<=int(video.get(cv2.CAP_PROP_POS_MSEC))<3000):
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            c.write(gray)
            cv2.imshow('frame',gray)
    else:
        c.write(frame)
        cv2.imshow('frame',frame)


video.release()
cv2.destroyAllWindows()



cap = cv2.VideoCapture('test.mp4')
first4seconds(cap)
导入cv2
def保存(上限):
宽度=cap.get(cv2.cap\U PROP\U FRAME\U WITH)
高度=cap.get(cv2.cap\u PROP\u FRAME\u height)
fps=cap.get(cv2.cap\u PROP\u fps)
fourcc=cv2.视频编写器_fourcc(*“XVID”)
out=cv2.VideoWriter('Project11.mp4',fourcc,fps,(int(宽度),int(高度)))
返回(输出)
def First4秒(视频):
c=保存(视频)
而(video.isopend()):
打印(video.get(cv2.CAP\u PROP\u POS\MSEC))
ret,frame=video.read()
如果ret==True:
如果cv2.waitKey(25)&0xFF==ord('q'):
打破
其他:
打破

如果(500<代码>如果(500)您的代码有两个函数定义和两行。这两行不调用您定义的函数。这在您的计算机上运行吗?@DaemonPainter问题已解决,谢谢您的时间守护程序。我将关闭此问题。您的主要问题已解决吗?视频仍有颜色?@Toby是,现在保存的视频有颜色/灰色交替。
if(500<=int(video.get(cv2.CAP_PROP_POS_MSEC))<1000 or 2000<=int(video.get(cv2.CAP_PROP_POS_MSEC))<3000):
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            **gray_2=cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)** 
            **cv2.imshow('frame',gray_2)**
            **c.write(gray_2)**
else:
    c.write(frame)
    cv2.imshow('frame',frame)