我试图在 OpenCV 中处理一对视频文件中的每一帧,然后将生成的帧写入输出 avi 文件。一切正常,只是输出的视频文件看起来很奇怪:不是一张实心图像,而是图像重复三次并水平压缩,因此所有三个副本都适合窗口。我怀疑作者期望的通道数量有问题,但我给它写的是 8 位单通道图像。以下是我初始化我的录影机的设置:
//Initialize the video writer
CvVideoWriter *writer = cvCreateVideoWriter("out.avi",CV_FOURCC('D','I','V','X'), 30, frame_sizeL, 0);
以前有没有人遇到过来自 openCV videowriter 的这种奇怪的输出?我一直在用 cvSaveImage 检查生成的帧,只是想看看我的处理步骤是否以某种方式创建了“三倍”图像,但事实并非如此。只有当我使用 cvWriteFrame 写入输出 avi 时,图像才会“三倍”并被压缩。
编辑:所以我发现这只发生在我尝试使用写入帧写入单通道图像时。如果我写 3 通道 8 位 RGB 图像,输出视频结果很好。为什么要这样做?在初始化 CvVideoWriter 时,我正确地为颜色参数传递了“0”,所以它应该期待单通道图像。