使用opencv创建灰度视频

时间:2014-04-14 17:35:10

标签: c++ opencv camera

我需要在Mac OS X 10.8上使用OpenCV从GIge相机保存灰度视频。我用了这段代码:

 namedWindow("My video",CV_WINDOW_AUTOSIZE);
 Size frameSize(659, 493);
 VideoWriter oVideoWriter ("MyVideo.avi",-1, 30, frameSize, false);

 While(1)
 {
 ...
     Mat Image=Mat(Size(GCamera.Frames[Index].Width,GCamera.Frames[Index].Height),CV_8UC1,GCamera.Frames[Index].ImageBuffer);

     oVideoWriter.write(Image);
 ...   
 }

我收到了这个错误:

  

OpenCV错误:cvtColor中的断言失败(scn == 3 || scn == 4),文件/Users/rosa/OpenCV-2.4.3/modules/imgproc/src/color.cpp,line 3270   libc ++ abi.dylib:terminate调用抛出异常   该计划意外完成。

2 个答案:

答案 0 :(得分:3)

我是这样做的:

 VideoWriter oVideoWriter ("MyVideo.avi",CV_FOURCC('M','J','P','G'), 30, frameSize);

 While(1)
 {
     Mat Image=Mat(Size(GCamera.Frames[Index].Width,GCamera.Frames[Index].Height),CV_8UC1,GCamera.Frames[Index].ImageBuffer);
     Mat colorFrame;
     cvtColor(Image, colorFrame, CV_GRAY2BGR);
     oVideoWriter.write(colorFrame);
 }

答案 1 :(得分:1)

您的问题是您的操作系统。检查documentation,它表示仅Windows支持灰度功能。

虽然容易修复,但

cv::Mat imageGrey;
cv::Mat imageArr[] = {Image, Image, Image};
cv::merge(imageArr, 3, imageGrey);

oVideoWriter.write(imageGrey);