2017-02-18 39 views
0

保存されているビデオを開こうとしています。OpenCV iOSとOpenCV C++のVideoCapture

次のコードでのOpenCV 3.0を使用してC++プロジェクトで

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

私は問題なくビデオファイルを開くことができ、および出力ラインはopenedを与えます。

ただし、まったく同じコードで同じビデオを使用しても、Objective-C++としてコンパイルするように設定されたOpenCVのiOSバージョンの場合、出力行にはnot openedと表示されます。私は何の誤りもありません。ビデオは開かれません。何か案は?

答えて

0

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); 
関連する問題