最近赶图像处理的课程作业,用到opencv的函数cvSetCaptureProperty()。环境是VS2008+opencv2.1。
但发现cvSetCaptureProperty()进行定位总是不准,代码如下:
cvSetCaptureProperty(pCapture, CV_CAP_PROP_POS_FRAMES, frameMark);
int framePos = cvGetCaptureProperty(pCapture, CV_CAP_PROP_POS_FRAMES);
framePos总是不等于frameMark值。后来google到问题所在,原来opencv2.1中cvSetCaptureProperty()函数内部参数不对,算是一个bug吧。具体详见:
http://www.opencv.org.cn/forum/viewtopic.php?t=11276 (感谢friedvan)
按照帖子内方法重新编译opencv库即可。不过由此产生另一个问题,就是avi播放时会花屏,这又是另一个问题了。