cvWriteFrame()后,所有绘制的形状都转换为黑色

时间:2013-10-01 06:20:05

标签: c++ opencv

所以我在视频中将颜色形状(绿色,红色和白色)绘制为 frame 。一切都很好。但是如果我想将帧写入VideoWriter, frame 中的所有这些形状都会转换为黑色。这是我的代码:

CvVideoWriter *new_writer = cvCreateVideoWriter("video.avi",CV_FOURCC('M', 'J', 'P', 'G'), 30, Size(640, 480), 1); 
IplImage new_img;

while(!frame.empty()){

    //My code
    imshow("Frame", frame);

    new_img = frame.operator IplImage();  
    int ret = cvWriteFrame(new_writer, (const IplImage*)&new_img);

}
cvReleaseVideoWriter(&new_writer);

此处的问题与 cvWriteFrame() 一致。在此之后,所有形状都转换为黑色。它们在新的 框架 中显示为黑色,在创建的视频中它们也是黑色。 我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

CV_FOURCC更改编解码器后(' M',' J',' P',' G') CV_FOURCC('我',' Y',' U'' V')一切都是很好,颜色也很合适。