java - 迭代openCV java中的视频帧

标签 java opencv video frame

我正在尝试在 openCV java 中循环播放帧视频 这是我的代码

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

问题是,它一直循环下去,没有结果,也没有错误,也没有内存泄漏! 请帮忙

最佳答案

您编写的 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编程书上看到过这个程序。

关于java - 迭代openCV java中的视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21417112/

相关文章:

android - 如何将Android ARGB图像格式转换为opencv中使用的RGB图像格式?

python - 在python中使用ffmpeg获取视频时长

c++ - Opencv 保存视频

video - FFMPEG 失败,只有两个输入帧

java - XML 中的空白

java - 当我使用异步时,按钮 onClick 收到 2 条错误消息

java - 在 Java 中关闭 Reader/Stream

opencv - 我应该如何识别特定形状的多个实例

java - 赋值的左侧必须是变量的问题

opencv - Java 中的 CascadeClassifier 找不到带有网络摄像头的人脸