今天终于把四相机同步采集系统的所有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()函数把前面三个拼接起来。这样就能去掉第四个通道(比如透明度了)。
接下来每天都要去好远的地方采集数据,上午花一小时下午花一小时在那呆着。
只能拿书去看准备实习了。晚上回学校才能刷题。