我在使用OpenCV
java从视频捕获卡的视频流中清晰捕获图像时遇到困难。到目前为止,这里没有其他建议对我有帮助(我花了一整天的时间仔细研究)。每次它返回损坏的图像或空白图像时,我都怀疑帧频问题,尽管我可以使用ffmpeg
来清晰地捕获它的图像(出于项目原因,我强烈希望在Java中使用它)。 ffmpeg
和opencv
均报告它们在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;
}
}
}