【问题标题】:VideoCapture in OpenCV iOS vs OpenCV C++OpenCV iOS 中的 VideoCapture 与 OpenCV C++
【发布时间】:2017-02-18 17:43:21
【问题描述】:

我正在尝试打开存储的视频。

在使用 OpenCV 3.0 的 C++ 项目中,代码如下:

cv::VideoCapture capture;
if(capture.open("IMG_1181.MOV")){
    cout << "opened";
}else{
    cout << "not opened";
}

我可以毫无问题地打开视频文件,输出行给出opened

但是,如果我使用完全相同的视频和完全相同的代码,但 iOS 版本的 OpenCV 设置为编译为 Objective-C++,则输出行会给出 not opened。我没有收到任何错误。视频就是打不开。有任何想法吗?

【问题讨论】:

    标签: ios opencv video-capture


    【解决方案1】:

    在 iOS 上,不能只用文件名打开文件(或者至少我不能)。首先,您需要获取包的路径,然后使用该路径加载文件。举个例子:

    // get main app bundle
    NSBundle * appBundle = [NSBundle mainBundle];
    
    // constant file name
    NSString * videoName = @"IMG_1181";
    NSString * videoType = @"MOV";
    
    // get file path in bundle
    NSString * videoPathInBundle = [appBundle pathForResource: videoName ofType: videoType];
    
    // convert NSString to std::string
    std::string videoPath([videoPathInBundle UTF8String]);
    
    // load video
    video =  cv::VideoCapture(videoPath);
    

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 1970-01-01
      • 2018-08-23
      • 2012-09-08
      • 2018-04-11
      • 2013-06-22
      • 2017-08-29
      • 2011-10-03
      • 2020-09-20
      相关资源
      最近更新 更多