Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 无法保存灰色帧,但保存原始颜色帧没有问题_Python_Opencv - Fatal编程技术网

Python 无法保存灰色帧,但保存原始颜色帧没有问题

Python 无法保存灰色帧,但保存原始颜色帧没有问题,python,opencv,Python,Opencv,已安装python 2.7和opoencv 3.1。尝试运行联机找到的示例代码。我可以使用imshow以灰色查看每一帧,但输出的灰度视频无法打开或由VLC播放 当我用out.write(frame)替换out.write(gray_image)以保存原始彩色帧时,输出视频是输入视频的良好副本。我不明白为什么灰度帧不能正确保存 import numpy as np import cv2 cap = cv2.VideoCapture("small.mp4") fourcc = cv2.VideoW

已安装python 2.7和opoencv 3.1。尝试运行联机找到的示例代码。我可以使用imshow以灰色查看每一帧,但输出的灰度视频无法打开或由VLC播放

当我用out.write(frame)替换out.write(gray_image)以保存原始彩色帧时,输出视频是输入视频的良好副本。我不明白为什么灰度帧不能正确保存

import numpy as np
import cv2

cap = cv2.VideoCapture("small.mp4")
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output.avi',fourcc, 20.0,(560,320))

while(cap.isOpened()):
    ret, frame = cap.read()
    # shape of frame: (320L,560L,3L)
    if ret==True:
        gray_image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        out.write(gray_image)
        # shape of gray_image: (320L, 560L)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

您没有将
isColor
参数设置为
False

VideoWriter构造函数
Python:cv2.VideoWriter([filename,fourcc,fps,frameSize[,isColor]))


顺便说一句,在我使用MS Windows的实践中,如果没有可用的
ffmpeg
库,有时无法正确创建灰色视频。

您不能将
isColor
参数设置为
False

VideoWriter构造函数
Python:cv2.VideoWriter([filename,fourcc,fps,frameSize[,isColor]))

顺便说一句,在我使用MS Windows的实践中,如果没有可用的
ffmpeg
库,有时无法正确创建灰色视频