OpenCV VideoWriters的输出目录有问题

Posted

技术标签:

【中文标题】OpenCV VideoWriters的输出目录有问题【英文标题】:trouble with output directory for OpenCV VideoWriters 【发布时间】:2010-10-13 14:49:05 【问题描述】:

我是一名数学本科生,几乎没有编程经验。不过,我对计算机视觉很感兴趣。试图遵循 Learning OpenCV 的书,但它有点过时了。如何将生成的视频文件保存在我的 linux 主目录中?例如“/home/user/..”,在此先感谢,这是我的第一篇文章,我知道我不会失望的。我在 eclipse btw 上编译,我对参数设置不太熟悉。

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>


int main(int argc, char *argv[]) 

 int isColor = 1;
 int frameW  = 640;
 int frameH  = 480;
 int fps     = 25;

 CvCapture* capture = cvCaptureFromCAM(0);
 assert( capture != NULL );

 cvNamedWindow( "Webcam", CV_WINDOW_AUTOSIZE);

 CvVideoWriter *writer = cvCreateVideoWriter(
   "out.avi",
   CV_FOURCC('M','J','P','G'),
   fps,
   cvSize(frameW,frameH),
   isColor
  );

 IplImage* frame = cvQueryFrame( capture );

 while( (frame = cvQueryFrame( capture )) != NULL ) 
  cvWriteFrame(writer, frame);
  cvShowImage("Webcam", frame);
  char c = cvWaitKey( 33 );
  if ( c == 27 ) break;
 

 cvReleaseVideoWriter( &writer );
 cvReleaseCapture( &capture );
 return(0);


【问题讨论】:

【参考方案1】:

您是否尝试过将完整路径传递给cvCreateVideoWriter

 CvVideoWriter *writer = cvCreateVideoWriter(
   "/home/user/out.avi",
   CV_FOURCC('M','J','P','G'),
   fps,
   cvSize(frameW,frameH),
   isColor
  );

【讨论】:

您好,感谢您的回复。我已经正确安装了 ffmpeg 并重新安装了 OpenCV。但现在我得到了这个错误。任何的想法? ==================================================== ================= 重定位错误:/usr/local/lib/libhighgui.so.2.1:符号 sws_getContext,版本 LIBAVCODEC_52 未在文件 libavcodec.so.52 中定义链接时间参考 我不太确定,这听起来像是 ffmpeg 编译方式的问题。您是自己构建它还是将其安装为一个包?我对这样做不是很熟悉,但是从谷歌搜索 here 看起来您可能需要使用 --enable-shared 选项构建 ffmpeg。

以上是关于OpenCV VideoWriters的输出目录有问题的主要内容,如果未能解决你的问题,请参考以下文章

VS2013怎么配置opencv才能不用每次都重新配置一遍?

opencv 输出图片中某一区域坐标平均值

opencv_cascade各个训练输出参数

OpenCV 图像混合

OpenCV 图像混合

OpenCV:期望最大化的预测函数的输出