OpenCV2.x使用cvSetCaptureProperty定位后读取的帧重复
前几天提取了一些视频中的人脸头像,交给同事去做识别分析,后来返回来说,其中的头像出现周期性的重复。
由于在视频中进行人脸检测开始是设定隔几幀检测一次,所以循环中使用了 cvSetCaptureProperty() 进行了跳帧,尔后通过cvQueryFrame()获取相应的帧转换成图像,于是怀疑是这里的问题。取消跳帧的规则后,程序检测正常。而修改定位的参数,比如直接改成定位到下一帧,却丝毫不起作用。
帧的重复非常有规律,我这边的测试数据是每隔5帧重复一次。于是就怀疑是否是定位出现了问题。google了一下,果然: opencv中cvSetCaptureProperty定位不准的原因及解决
?
?
VideoCapture cap;cap.open("test.avi");namedWindow("video",1);int frameNum=0;int readRatio=3;//读取的周期for(;;){ if(frameNum%readRatio!=0) continue; Mat frame; cap<<frame; //Do something frameNum++;}??
?
?
?
?