VideoCapture 在 OpenCV 2.4.2 中不起作用
Posted
技术标签:
【中文标题】VideoCapture 在 OpenCV 2.4.2 中不起作用【英文标题】:VideoCapture is not working in OpenCV 2.4.2 【发布时间】:2012-07-11 19:05:30 【问题描述】:我最近在 Ubuntu 12.04 中安装了 OpenCV 2.4.2。
cap = VideoCapture(0)
正在工作。但我无法从某些视频源中抓取帧。
cap = VideoCapture("input.avi")
img = cap.read()
给我一个全零元素的 numpy。
我还安装了ffmpeg 0.11,x264的最新快照,v4l-0.8.8(都是最新的稳定版本)
cmake -D WITH_QT=ON -D WITH_FFMPEG=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=OFF WITH_V4L=ON ..
make
sudo make install
当我做 cmake 时,我得到了这个
-- 检测到的 GNU GCC 版本:46 (406) -- 找到 OpenEXR:/usr/lib/libIlmImf.so -- 寻找 linux/videodev.h -- 正在寻找 linux/videodev.h - 未找到 -- 寻找 linux/videodev2.h -- 寻找 linux/videodev2.h - 找到 -- 寻找 libavformat/avformat.h -- 寻找 libavformat/avformat.h - 找到 -- 寻找 ffmpeg/avformat.h -- 正在寻找 ffmpeg/avformat.h - 未找到 -- 检查模块“tbb” -- 未找到包 'tbb'
和
-- Video I/O:
-- DC1394 1.x: NO
-- DC1394 2.x: YES (ver 2.2.0)
-- FFMPEG: YES
-- codec: YES (ver 54.23.100)
-- format: YES (ver 54.6.100)
-- util: YES (ver 51.54.100)
-- swscale: YES (ver 2.1.100)
-- gentoo-style: YES
-- GStreamer:
-- base: YES (ver 0.10.36)
-- app: YES (ver 0.10.36)
-- video: YES (ver 0.10.36)
-- OpenNI: NO
-- OpenNI PrimeSensor Modules: NO
-- PvAPI: NO
-- UniCap: NO
-- UniCap ucil: NO
-- V4L/V4L2: Using libv4l (ver 0.8.8)
-- XIMEA: NO
-- Xine: NO
我在寻找 videodev.h 等
/usr/include/linux/videodev2.h 存在 /usr/include/libavformat/avformat.h 存在 /usr/local/include/libavformat/avformat.h 存在但我找不到ffmpeg/avformat.h
这里有什么问题?
【问题讨论】:
我的videoCapture也有问题,尝试打开视频时崩溃... 【参考方案1】:所以,我意识到 ffmpeg 存在一些问题。我重建并安装了ffmpeg,然后更改了cmake的标志以制作opencv。
对于 ffmpeg,
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo make install
对于 OpenCV,
cmake -D CMAKE_BUILD_TYPE=RELEASE ..
make
sudo make install
这是安装 OpenCV 2.4.2 https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/2.4/opencv2_4_2.sh的完整脚本
这是我关于 OpenCV 2.4.2 安装的详细博文http://jayrambhia.com/blog/install-opencv-2-4-in-ubuntu-12-04-precise-pangolin/
【讨论】:
我只是不明白他们怎么能把它弄得这么复杂,这应该是默认的 如果我通过 apt-get 安装所有东西会怎样?你认为我可以让它运行吗? 我想这可能是一些许可证问题,必须通过这种方式进行。【参考方案2】:要运行 OpenCV 的完整安装,请尝试以下操作:
sudo apt-get install libopencv-dev python-opencv
更多详情请查看以下链接http://milq.github.io/install-opencv-ubuntu-debian/
【讨论】:
以上是关于VideoCapture 在 OpenCV 2.4.2 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 上的 OpenCV 中旋转 VideoCapture
VideoCapture 在 OpenCV 2.4.2 中不起作用
从 OpenCV 3 中的 VideoCapture 获取垫子