请我需要帮助 当我尝试使用 opencv 创建用于对象跟踪的指针时出现错误
cv::Ptr<cv::Tracker> tracker = cv::TrackerKCF::create();
错误提示:
TrackerKCF 不是 CV 会员。
我已经检查了有关对象跟踪的 opencv 文档,并且包含了必要的标头。我被困住了。
我包含的不同标题包括:
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/objdetect.hpp>
#include <opencv2/video/tracking.hpp>
#include <iostream>
我尝试根据 OpenCV 为其他对象跟踪算法创建指针
cv::Ptr<cv::Tracker> tracker = cv::TrackerMOSSE::create();
cv::Ptr<cv::Tracker> tracker = cv::TrackerCSRT::create();
我收到同样的错误
这对我有用:
#include <opencv2/tracking.hpp>
#include <opencv2/tracking/tracking_legacy.hpp>
int main()
{
auto tracker = cv::legacy::TrackerMOSSE::create();
cv::Ptr<cv::Tracker> tracker2 = cv::TrackerCSRT::create();
}
请注意,
TrackerMOSSE
很久以前就已移至“旧版”(OpenCV 4.5.1)。
一般来说,一切都有详细记录,例如https://docs.opencv.org/4.8.0/d2/da2/classcv_1_1TrackerCSRT.html,对于 CSRT,只需在组合框中选择正确的 OpenCV 版本并使用搜索小部件即可。