Opencv 3.3.1 c ++跟踪导致随机崩溃

时间:2017-11-09 08:25:29

标签: c++ opencv

我正在编写一个程序,输入由DTU的星跟踪器拍摄的一组图像。它由ROI组成,背景为黑色,星星为白色。然后我的程序必须跟踪星星。

守则:

source Topology.tcl

我一直在阅读随机c ++错误以及我能理解的随机崩溃是由于内存未被分配。然后随机填充存​​储器"如果代码运行为空,如果没有,则代码崩溃。崩溃没有系统的发生。有时它的图像10有时在图像200处。

我怀疑函数calcOpticalFlowPyrLK或goodFeaturesToTrac因为我不知道他们如何分配内存。当程序崩溃时我没有收到任何错误消息,所以我真的没有什么可以继续下去。

希望你们任何人都能帮助我。

问候 Ditlev

包含两个相应的图像,因此您可以了解我正在使用的内容。

First Image Second Image

1 个答案:

答案 0 :(得分:0)

我想我发现了错误。

我创建了std::vector<cv::Point2f> featuresNextPos;并且还有std::vector<cv::Point2f> featuresCurrent;。这是必不可少的。 featuesNextPos得到了创造&#39;每个循环,而featuresCurrent只创建一次。

通过更改行:

calcOpticalFlowPyrLK(prevgray, img, featuresPrevious, featuresNextPos, featuresFound, err);

calcOpticalFlowPyrLK(prevgray, img, featuresPrevious, featuresCurrent, featuresFound, err);

我没有再崩溃了。希望这是一个永久性的解决方案,而不仅仅是幸运的罢工。如果有人能解释为什么它在创建时崩溃,每个循环都可以在这里发表评论。

问候 Ditlev