OPENCV VIDEOWRITER尺寸问题
OpenCV VideoWriter size issue
我正在尝试读取视频文件,对其进行处理,并将处理的帧写入输出视频文件。但是,我会收到以下错误:
OpenCV Error: Assertion failed (img.cols == width && img.rows == height && channels == 3) in write, file /.../opencv-cpp/modules/videoio/src/cap_mjpeg_encoder.cpp, line 829
terminate called after throwing an instance of 'cv::Exception'
what(): /.../opencv-cpp/modules/videoio/src/cap_mjpeg_encoder.cpp:829: error: (-215) img.cols == width && img.rows == height && channels == 3 in function write
我确定我有3个频道(我用.channels()
检查了write()
函数:
//generate video
cout<<finalOutputRGB.channels()<<endl;
outputCapRGB.write(finalOutputRGB);
所以问题不在这里。也许我初始化的方式?
// Setup output videos
VideoWriter outputCapRGB(rgbVideoOutputPath, captureRGB.get(CV_CAP_PROP_FOURCC), captureRGB.get(CV_CAP_PROP_FPS),
Size(captureRGB.get(CV_CAP_PROP_FRAME_WIDTH), captureRGB.get(CV_CAP_PROP_FRAME_HEIGHT)));
可能是什么?我想到的是,在处理框架的过程中,它们正在裁剪,因此决议不一样。也许这可能是原因。但是话又说回来,OpenCV不允许记录任何修改的视频是很愚蠢的。
所以我尝试创建带有框架的裁剪尺寸的videowriter对象,如下所示:
// Sizes of the videos to be written (after the processing)
Size irFrameSize = Size(449, 585);
Size rgbFrameSize = Size(488, 694);
// Setup output videos
VideoWriter outputCapRGB(rgbVideoOutputPath, captureRGB.get(CV_CAP_PROP_FOURCC), captureRGB.get(CV_CAP_PROP_FPS), rgbFrameSize);
VideoWriter outputCapIR(irVideoOutputPath, captureIR.get(CV_CAP_PROP_FOURCC), captureIR.get(CV_CAP_PROP_FPS), irFrameSize);
但是,我仍然遇到同样该死的错误。
另外,,我也感谢您在Ubuntu上方便地裁剪视频文件的任何建议。这也将解决问题。我会裁剪视频并将其喂食。
有什么想法?
例外说您要编写的图像框架与视频尺寸的大小不同。您应该检查您正在编写的每个图像框架是否具有与视频仪相同的宽度/高度。
只是在黑暗中拍摄:由于您确定自己有3个通道,因此您是否有可能倒宽和高度?在OPENCV中,Size
定义为具有(width, height)
,而Mat
定义为(rows, cols)
,这与(height, width)
有效相对应。
可能为时已晚。但是这个解决方案对我有用。通过使用cv::resize(finalOutputRGB,finalOutputRGB, cv::size(width, height*3))
**调整Mat
的大小**使用图像的高度*3的高度。**就是这样。它解决了我的问题。希望这会有所帮助。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- OPENCV VIDEOWRITER尺寸问题
- OpenCV videoWriter编解码器问题
- OpenCV VideoWriter帧率问题