我正在尝试使用OpenCV从网络摄像头抓取帧。我也试过'奶酪'。两者都给我一个非常奇怪的图片:扭曲,错误的颜色。使用mplayer我能够找出正确的编解码器“yuy2”。即使mplayer有时会选择错误的编解码器(“yuv”),这使得它看起来就像使用OpenCV / cheese捕获图像一样。
我可以告诉OpenCV使用哪种编解码器吗?
谢谢!
答案 0 :(得分:0)
在最新版本的opencv中,您可以使用与视频相同的fourcc样式代码设置摄像机的捕获格式。见http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture
它可能仍需要一些反复试验,像YUV,YUYV,YUY2这样的术语被相机制造商,驱动程序制造商,操作系统,directshow层和opencv稍微松散地使用了!
答案 1 :(得分:0)
OpenCV自动选择第一个可用的捕获后端(see here)。可能是它没有自动使用V4L2。
如果从源代码构建,也请同时设置n+1
和-D WITH_V4L=ON
。
要设置要使用的像素格式,请设置捕获的-D WITH_LIBV4L=ON
属性:
CAP_PROP_FOURCC