gpt4 book ai didi

c++ - 使用opencv的光流

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:18 25 4
gpt4 key购买 nike

我正在使用 OpenCV 的 Pyramid Lukas Kanade 函数来估计光流。我调用 cvGoodFeaturesToTrack,然后调用 cvCalcOpticalFlowPyrLK。这是我的代码:

while(1)
{
...

cvGoodFeaturesToTrack(frameAth,eig_image,tmp_image,cornersA,&corner_count,0.01,5,NULL,3,0.4);

std::cout<<"CORNER COUNT AFTER GOOD FEATURES2TRACK CALL = "<<corner_count<<std::endl;

cvCalcOpticalFlowPyrLK(frameAth,frameBth,pyrA,pyrB,cornersA,cornersB,corner_count,cvSize(win_size,win_size),5,features_found,features_errors,cvTermCriteria( CV_TERMCRIT_ITER| CV_TERMCRIT_EPS,20,0.3 ),CV_LKFLOW_PYR_A_READY|CV_LKFLOW_PYR_B_READY);

cvCopy(frameBth,frameAth,0);
...
}

frameAth 是前一个灰帧,frameBth 是来自网络摄像头的当前灰帧。但是当我在每帧中输出要跟踪的好特征的数量时,数量在总和时间后减少并持续减少。但是,如果我终止程序并再次执行代码(不干扰网络摄像头的视野),则会显示更多的点作为跟踪的良好特征...对于相同的视野和相同的情况如何场景函数在点数上给出了这样的差异……而且差异很大……例如……执行 4 分钟后要跟踪的好特征点数是 20 或 50……但是当同一个程序终止并且再次执行数字是 500 到 700 initialy 但再次缓慢减少..我在过去的 4 个月里使用 opencv 所以我是 openCV 的新手..请指导我或告诉我在哪里可以找到解决方案......很多提前谢谢..

最佳答案

您必须调用一次 cvGoodFeaturesToTrack(在开始时,在循环之前)以检测要跟踪的良好特征,而不是使用 cvCalcOpticalFlowPyrLK 跟踪这些特征。查看默认的 opencv 示例:OpenCV/samples/cpp/lkdemo.cpp

关于c++ - 使用opencv的光流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com