美文网首页SLAM、OpenCV、Linux、ROS等
Ubuntu 16.04中OpenCV 2.3处理视频

Ubuntu 16.04中OpenCV 2.3处理视频

作者: 一恪slam | 来源:发表于2018-12-15 11:37 被阅读0次

背景

由于项目需要用OpenCV2.3的视频处理功能,
代码如下:

#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main(){
    cv::VideoCapture movie;
    string path="/your/movie/path/test.avi";
    movie.open(path);
    cout<<movie.isOpened()<<endl;
    if (!movie.isOpened()) {
        std::cerr << path << "video not found" << std::endl;
        return -1;
    }
    return 0;
}

发现视频总是打不开。查找网上资料后发现是ffmpeg没有安装。

查看opencv-2.3.0/3rdparty/CMakeLists.txt源码知道Linux版的OpenCV中3rdparty默认没有加入ffmpeg。

# opencv-2.3.0/3rdparty/CMakeLists.txt文件内容
if(NOT ZLIB_FOUND)
    add_subdirectory(zlib)
endif()
if(WITH_JASPER AND NOT JASPER_FOUND)
    add_subdirectory(libjasper)
endif()
if(WITH_JPEG AND NOT JPEG_FOUND)
    add_subdirectory(libjpeg)
endif()
if(WITH_PNG AND NOT PNG_FOUND)
    add_subdirectory(libpng)
endif()
if(WITH_TIFF AND NOT TIFF_FOUND)
    add_subdirectory(libtiff)
endif()
if(WIN32)
    add_subdirectory(ffmpeg)
endif()
# 可以看到只有WIN32位系统才会包含ffmpeg

解决方案

安装ffmpeg
OpenCV 2.3版本对应的ffmpeg为0.7,从Github上克隆分支为0.7的代码,然后进行编译。测试通过后再重新编译OpenCV 2.3,同时打开WITH_FFMPEG选项。
OpenCV 2.3引入到CMake工程中见这篇简书

相关文章

网友评论

    本文标题:Ubuntu 16.04中OpenCV 2.3处理视频

    本文链接:https://www.haomeiwen.com/subject/mcoohqtx.html