使用OpenCV功能的灰度图像的Videowriter功能

时间:2016-12-21 20:54:57

标签: c++ opencv video

我有一个GigaE相机,它给我一个灰度图像,我想将其录制为视频并稍后处理。

因此,作为初始步骤,我尝试使用我的网络摄像头录制视频,如果我将其转换为灰度,然后再将其写入视频。我没有收到任何视频。 我的代码在

之下
int main(int argc, char* argv[])
{

VideoCapture cap(0); 
VideoWriter writer;

if (!cap.isOpened())  
{
    cout << "not opened" << endl;
    return -1;
}

char* windowName = "Webcam Feed";
namedWindow(windowName, CV_WINDOW_AUTOSIZE); 


string filename = "D:\myVideo_greyscale.avi";
int fcc = CV_FOURCC('8', 'B', 'P', 'S');
int fps = 30;
Size frameSize(cap.get(CV_CAP_PROP_FRAME_WIDTH),cap.get(CV_CAP_PROP_FRAME_HEIGHT));
writer = VideoWriter(filename,-1,fps,frameSize);

if(!writer.isOpened())
{
    cout<<"Error not opened"<<endl;
    getchar();
    return -1;
}


while (1) 
{

    Mat frame;

    bool bSuccess = cap.read(frame); 

    if (!bSuccess) 
    {
        cout << "ERROR READING FRAME FROM CAMERA FEED" << endl;
        break;
    }
    cvtColor(frame, frame, CV_BGR2GRAY);
    writer.write(frame);
    imshow(windowName, frame); 
}

return 0;

}`

我使用fcc-1尝试了所有可能无法录制视频的可能性。 我还尝试fcc CV_FOURCC('8','B','P','S') context['ti'] {{1}},但它没有帮助我。

使用断点creating a grayscale video using opencv

后,我在调试中遇到此错误

1 个答案:

答案 0 :(得分:3)

VideoWriter有一个可选参数,用于指示视频是灰度还是彩色。默认ist color = true。尝试

bool isColor = false;
writer = VideoWriter(filename,-1,fps,frameSize, isColor);