0

我正在尝试使用一些深度图序列编写视频。

我已将深度图像从 cv::Mat_ 转换为具有单通道的 cv::Mat。但是我使用的任何编解码器都无法打开我想要编写的 avi 文件。VideoCapture.open(...) 似乎无法创建文件或打开它。

我认为这是选择正确编解码器的问题。我可能错了。我发布了一个小代码片段。

cv::VideoWriter outputVideo_;
source_ = "~/Hello.avi";
cv::Size S(480, 640);
outputVideo_.open(source_, CV_FOURCC('D','I','B', ' '), 20, S, false);

if (!outputVideo_.isOpened())
{
  std::cout  << "Could not open the output video for write: " << source_ << std::endl;
  return;
}

在这种情况下,如何让 opencv 正常工作。我正在使用 linux 12.04、ROS(机器人操作系统)和 OpenCV 2.4.2

4

1 回答 1

0

尝试使用只有文件名的 open() 函数。因为在我这里它运作良好。

VideoWriter outputVideo_;
source_ = "~/Hello.avi";
// cv::Size S(480, 640);
outputVideo_.open(source_);

if (!outputVideo_.isOpened())
{
  std::cout  << "Could not open the output video for write: " << source_ << std::endl;
  return;
于 2013-06-18T16:13:34.790 回答