我在OpenCV中遇到RAW YUB视频负载问题。我可以使用以下命令在mplayer中播放它:
mplayer myvideo.raw -rawvideo w=1280:h=1024:fps=30:y8 -demuxer rawvideo
我在OpenCV中加载的代码是:
CvCapture* capture=cvCaptureFromFile("C:\\myvideo.raw");
cvCaptureFromFile
始终返回NULL。但是,如果我尝试使用普通的avi文件,代码会正常运行(捕获不为空)。
我正在使用Windows 7下最新版本的OpenCV。
编辑:输出消息
[IMGUTILS @ 0036f724] Picture size 0x0 is invalid
[image2 @ 009f3300] Could not find codec parameters (Video: rawvideo, yuv420p)
由于
答案 0 :(得分:1)
OpenCV使用ffmpeg作为后端,但是它只包含ffmpeg函数的子集。您可以尝试安装一些编解码器。 (K-lite帮我一段时间)
但是,如果您的目标是在OpenCV中获得原始YUV,答案是“不可能”。
OpenCV是硬编码将每个输入格式转换为BGR,所以即使您能够打开原始输入,它也会在传递之前自动将其输出到BGR。没有机会解决这个问题,唯一的方法是使用不同的捕获库或入侵OpenCV。
你可以做的(模拟YUV输入)是捕获avi,转换为YUV
cvtColor(...,CV_BGR2YCBCR /* or CV_BGR2YUV */ );
然后处理它