我正在编写一个程序,输入由DTU的星跟踪器拍摄的一组图像。它由ROI组成,背景为黑色,星星为白色。然后我的程序必须跟踪星星。
守则:
source Topology.tcl
我一直在阅读随机c ++错误以及我能理解的随机崩溃是由于内存未被分配。然后随机填充存储器"如果代码运行为空,如果没有,则代码崩溃。崩溃没有系统的发生。有时它的图像10有时在图像200处。
我怀疑函数calcOpticalFlowPyrLK或goodFeaturesToTrac因为我不知道他们如何分配内存。当程序崩溃时我没有收到任何错误消息,所以我真的没有什么可以继续下去。
希望你们任何人都能帮助我。
问候 Ditlev
包含两个相应的图像,因此您可以了解我正在使用的内容。
答案 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