Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在openCV java中迭代视频帧_Java_Opencv_Video_Frame - Fatal编程技术网

在openCV java中迭代视频帧

在openCV java中迭代视频帧,java,opencv,video,frame,Java,Opencv,Video,Frame,我正在尝试在openCV java中循环帧视频 这是我的密码 Mat frame = new Mat(); int numOfFrames = 0; boolean hasNext = true; while(hasNext){ hasNext = video.read(frame); numOfFrames++; } 问题是,它永远循环,没有结果、错误或内存泄漏! 请提供任何帮助您编码的while循环需要某种类型的条件来

我正在尝试在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
或者你可以简单地添加一个
中断但它只会迭代一次。也许for循环是更好的选择D

希望这有帮助


很酷,OpenCV有一个java包装器。我在一本C编程书中见过这个程序

你们是在看视频文件还是在用相机拍摄?是的,卢卡说了。摄影机流从未停止从视频文件读取您是否等待了足够长的时间以到达文件的结尾?可能文件太大,需要花费大量时间。如果你的处理速度约为200fps,那么在25fps(90000帧)上解码1小时视频需要7,5分钟才能完成。事实上,我正在尝试4秒视频。嗯,她可能想要电影的结尾,这不是一个任意的数字。也许这就是
中断所使用的条件?@berak但是要检查什么条件才能找到视频的结尾嗯,我在3.0上,而这正是在这里发生的。视频(来自文件)结束,捕获。读取(帧);返回false。sarah似乎在抱怨,这并没有像预期的那样发生..如果
video.read(frame)出现问题,你可能有条件停止程序从不返回
false