小编Nik*_*ola的帖子

重新初始化后,OpenCV 3 Tracker将无法运行

我有问题使用OpenCV 3跟踪模块进行跟踪.它的行为相同,我使用接口类(cv :: Tracker)或带有实现的类(如cv :: TrackerMedianFlow或cv :: TrackerMIL等).样本是来自OpenCV样本文件夹的一点修改样本正确创建后

Ptr<Tracker> tracker = Tracker::create( tracker_algorithm );
if ( tracker == NULL )
{
    std::cout << "***Error in the instantiation of the tracker...***\n";
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

初始化工作正常

if ( !tracker->init( frame, boundingBox ) )
{
    std::cout << "***Could not initialize tracker...***\n";
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

当跟踪丢失时,问题发生在主循环的后期.我使用单独的探测器来定义新目标.当我找到新目标时,我清除跟踪器并使用新值初始化它

                    tracker->clear( );
                    if ( !tracker->init( frame, detectedNewBBox) )
                    {
                        std::cout << "***Could not initialize tracker without history...***\n";
                        return -1;
                    }
Run Code Online (Sandbox Code Playgroud)

但是,初始化始终返回false.我试图找出为什么无法初始化跟踪器?几次检查数据,看起来非常正确.我甚至进行了小型实验,试图在创建后立即使用相同的数据初始化跟踪器,它不会初始化循环并且它工作完美.难道我做错了什么?我无法找到任何关于此的文档...以下是可用文档的链接: OpenCV 3 Tracker文档

谢谢你的努力!

tracking initialization opencv3.0

7
推荐指数
1
解决办法
6345
查看次数

标签 统计

initialization ×1

opencv3.0 ×1

tracking ×1