Opencv Java VideoCapture图像损坏,可能是帧速率驱动

时间:2018-12-13 21:28:08

标签: java opencv ffmpeg

我在使用OpenCV java从视频捕获卡的视频流中清晰捕获图像时遇到困难。到目前为止,这里没有其他建议对我有帮助(我花了一整天的时间仔细研究)。每次它返回损坏的图像或空白图像时,我都怀疑帧频问题,尽管我可以使用ffmpeg来清晰地捕获它的图像(出于项目原因,我强烈希望在Java中使用它)。 ffmpegopencv均报告它们在30 fps处捕获,并通过YUYV使用v4l2格式。 我的代码:

Mat frame = new Mat();
VideoCapture camera = new VideoCapture(0);
int fcc = VideoWriter.fourcc('Y', 'U', 'Y', 'V');
System.out.println(camera.get(Videoio.CAP_PROP_FPS)+
" "+camera.get(Videoio.CAP_PROP_FOURCC)+" "+fcc);
wait_for(10000);//wrapper for TimeUnit.MILLISECONDS.sleep()
while (!camera.isOpened()){//this part never runs
    wait_for(50);
    if(c++>500){
        break;
    }
}
while (true) {
        if (camera.read(frame)) {
            if(Core.sumElems(nframe).val[0]>Math.pow(10, 4)){
                Imgcodecs.imwrite("/home/ewinship/testimg.jpg", frame);
                break;
            }
        }
 }

Example picture of my USB drive

0 个答案:

没有答案