C++ OpenCV VideoWriter报错解决方案


今天终于把四相机同步采集系统的所有bug都解决了,遇到了好多问题百度都是错误的答案,下面记录一下。

(1)自定义一张图片,输入VideoWriter里面可以生成一个视频。可是换一台电脑就会出现如下错误:

cv::VideoWriter::open VIDEOIO(CV_IMAGES):raise OpenCV exception:

OpenCV(4.5.5) C:\build\master_winpack-build-win64-vc14\opencv\module\videoio\src\cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number(in the name of file): 一堆乱码 in function cv::icvExtractPattern'

网上搜了全是说什么把文件名test.mp4改成什么带数字的test001.mp4

乱讲。实际上只需要把opencv的版本降低成3.几的就可以了。

(2)CV_8UC4(24)转成CV_8UC3(16)。

输入VideoWriter里面的RGB图片一定是三通道的,不能是带透明度的四通道数据。网上的人说用convertTo()这个函数转换。乱讲,实际上这个函数不能改变通道数。正确的应该是使用split()函数把8UC4的图片分成大小为4的数组,然后再merge()函数把前面三个拼接起来。这样就能去掉第四个通道(比如透明度了)。

 

接下来每天都要去好远的地方采集数据,上午花一小时下午花一小时在那呆着。

只能拿书去看准备实习了。晚上回学校才能刷题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM