2017-05-05 55 views
0

我在使用OpenCV 3.1編譯Ubuntu 14.04。當試圖打開一個視頻文件,它提供了這個錯誤:OpenCV VideoCapture無法打開文件,我做錯了什麼?

"Cannot open the video file"

我安裝了一切我可以安裝:ffmpeg的等方面都沒有找到一個解決檢查出的StackOF類似的問題。

什麼?

cv::VideoCapture cap(argv[1]); 

其中argv [1]是與可執行文件在同一目錄中的文件名。

+1

@ΦXocę웃Пepeúpaツ發佈 – edd

+0

你能告訴我什麼是argv [1]嗎? –

+0

argv [1]是一個指向表示我想要打開的文件名的字符串的指針@ΦXocę웃Пpepúpaз – edd

回答

0

如果您的構造函數失敗,您可能需要使用.open()方法。所以,如果你想打開一個名爲「myVideo.mp4」這是你的項目的文件夾中的文件,你會做以下幾點:

cv::VideoCapture cap; 
cap.open("myVideo.mp4"); 

有關此方法的詳細信息,請在此documentation link 此外,第26頁的來自O'Rilley媒體的學習OpenCV 3書籍爲您提供了一個很好的例子。這是我給你作爲例子的Gist

#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <iostream> 

int main() { 
    cv::VideoCapture cap; 
    cap.open("myVideo.mp4"); 
    cv::namedWindow("myVideo", cv::WINDOW_AUTOSIZE); 
    cv::Mat frame; 
    while(true) { 
    cap >> frame; 
    if(frame.empty()){ 
     std::cout << "Could not load the video frames. \n"; 
     break; 
    } 
    cv::imshow("myVideo", frame); 
    if(cv::waitKey(27) >= 0){ 
     std::cout << "Escape pressed \n"; 
     break; 
    } 
    } 
    return 0; 
}