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 に答える