gpt4 book ai didi

OpenCV 的 cvWriteFrame , cvWriteToAVI

转载 作者:太空宇宙 更新时间:2023-11-03 20:53:51 25 4
gpt4 key购买 nike

问题如下我想从磁盘读取一个视频文件并将其每一帧转换为灰度并将其写入新的视频文件我正在使用以下代码来执行此操作

CvCapture* capture = cvCreateFileCapture( "/root/tree.avi");
if (!capture){
return -1;
}
...
CvVideoWriter* writer =
cvCreateVideoWriter("/root/output.avi",CV_FOURCC('D','I','V','X'),fps,size);
...
IplImage* gray_frame = cvCreateImage(
size,
IPL_DEPTH_8U,
1
);

while( (bgr_frame=cvQueryFrame(capture)) != NULL ) {
cvShowImage( "Example2_10", bgr_frame );

cvCvtColor(bgr_frame,gray_frame,CV_RGB2GRAY);

cvShowImage( "B&W result", gray_frame );
cvWriteFrame( writer, gray_frame);
char c = cvWaitKey(10);
if( c == 27 ) break;
}
...

问题是,程序运行良好,但无法将帧写入 output.avi 并仅创建 5.5KB 的空白 output.avi 文件

还有一件事是我无法使用 cvWriteFrame 只写 gra_frame ,如果我尝试写 bgr_frame ,它确实成功地写了 output.avi 文件。

如果有人知道解决方法请告诉我

最佳答案

如果要写入灰度值图像,需要将is_color=0传递给cvCreateVideoWriter函数。因此,您只能将彩色图像写入输出视频。

cvCreateVideoWriter函数的最后一个参数,默认为1:

CvVideoWriter* cvCreateVideoWriter(const char* filename, int fourcc, double fps, CvSize frame_size, int is_color=1)

关于OpenCV 的 cvWriteFrame , cvWriteToAVI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9902031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com