在openCV java中迭代视频帧

时间:2014-01-28 21:21:18

标签: java opencv video frame

我试图在openCV java中循环帧视频 这是我的代码

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

问题是,它永远循环,没有结果或错误或内存泄漏! 任何帮助,请

1 个答案:

答案 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编程书中看过这个程序。