2014-01-28 37 views
2

視頻幀我想環路上的幀的視頻在OpenCV中的Java 這裏是我的代碼疊代OpenCV中的Java

Mat frame = new Mat(); 
    int numOfFrames = 0; 
    boolean hasNext = true; 
    while(hasNext){ 
     hasNext = video.read(frame); 
     numOfFrames++; 
    } 

的問題是,它沒有結果或錯誤或內存泄漏永遠循環! 請任何幫助

+1

你是從視頻文件閱讀還是從相機捕捉? – lukk

+0

是啊,什麼lukk說。相機流只是*從不*停止 – berak

+0

從視頻文件中讀取 –

回答

1

您編碼的while循環需要某種類型的條件來打破循環。由於代碼現在是while循環顯然永遠循環。

因此,例如,你可以做這樣的事情,以避免無限循環。

boolean hasNext = true; 
    while(hasNext) { 
     hasNext = video.read(frame); 
     numOfFrames++; 

     if(numOfFrames == 100) { 
       break; // calling this will break out of the loop 
     } 
    } // end while loop 

,或者你可以簡單地添加break;但它只會重複一次。也許for循環是一個更好的選擇? :D

希望這會有所幫助。

這很酷,有一個OpenCV的Java包裝。我在C編程書中看到過這個程序。

+0

嗯,她可能想要電影的*結尾*,而不是任意數字來救助.. – berak

+0

也許這是'break'的條件? –

+0

@berak雖然檢查視頻的結尾的條件是什麼? :D –