我正在尝试用一些深度图序列来编写视频。
我已经使用单通道将深度图像从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
答案 0 :(得分: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;