2013-02-17 69 views
0

我已經寫了下面的代碼來在OpenCV中顯示視頻。我已經編譯好了,但是當我運行它時,應該顯示視頻的窗口打開,但實際上看不到視頻是否正在播放。其他一切似乎都很好。幀的寬度,高度和數量按照代碼在命令行上打印。任何人都知道問題是什麼?一探究竟。OpenCV中的視頻顯示窗口不能確定視頻的大小

void info() 
{ 
    cout << "This program will accept input video with fixed lengths and produce video textures" << endl; 
} 

int main(int argc, char *argv[]) 
{ 
    info(); 
    if(argc != 2) 
    { 
    cout << "Please enter more parameters" << endl; 
    return -1; 

    } 

const string source = argv[1]; 

VideoCapture input_vid(source); 
if(! input_vid.isOpened()) 
{ 
    cout << "Error: Could not find input video file" << source << endl; 
    return -1; 
} 


Size S = Size((int) input_vid.get(CV_CAP_PROP_FRAME_WIDTH), //Acquire size of input video 
       (int) input_vid.get(CV_CAP_PROP_FRAME_HEIGHT)); 

cout << "Width: = " << S.width << " Height: = " << S.height << " Number of frames: " << input_vid.get(CV_CAP_PROP_FRAME_COUNT)<<endl; 

const char* PLAY = "Video player"; 

namedWindow(PLAY, CV_WINDOW_AUTOSIZE); 
//imshow(PLAY,100); 
char c; 
c = (char)cvWaitKey(27); 
//if (c == 27)break; 
return 0; 
} 

回答

0

假設視頻是網絡攝像頭:

capture = CaptureFromCAM(0); 
SetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT, 640); 
SetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH, 480); 

這將解決您的問題

+0

我正在閱讀文件。同樣的事情仍然適用嗎? – user2035796 2013-02-17 17:33:26

+0

CaptureFromAvi我認爲這是? – user2035796 2013-02-17 17:33:50

+0

是的,我寫我假設如果捕獲來自凸輪。如果AVI使用CaptureFromAvi,我不太確定這個功能。上面的代碼的最後兩行是必需的。讓我知道你是否面臨其他問題。 – 2013-02-17 17:40:50

0

另一個簡單的調整可以使用CV_WINDOW_NORMAL代替CV_WINDOW_AUTOSIZE

namedWindow(PLAY, CV_WINDOW_AUTOSIZE); 

,它可以讓你調整手動窗口

+0

這不起作用:(程序運行時,我的鼠標處於非活動狀態,因此無法將視頻尺寸設置爲實際看到視頻 – user2035796 2013-02-17 18:34:46