我有一个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}},但它没有帮助我。
答案 0 :(得分:3)
VideoWriter有一个可选参数,用于指示视频是灰度还是彩色。默认ist color = true。尝试
bool isColor = false;
writer = VideoWriter(filename,-1,fps,frameSize, isColor);