gpt4 book ai didi

c++ - OpenCV:无法从 contrib 存储库中找到模块(Tracker、selectROI)

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:36 39 4
gpt4 key购买 nike

我正在从事一个涉及跟踪对象的项目,我正在尝试让 OpenCV contrib repo 的 TrackerKCF 发挥作用。这是我在网上得到的示例代码:

#include <opencv2/core/utility.hpp>
#include <opencv2/video/tracking.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <cstring>

using namespace std;
using namespace cv;

int main( int argc, char** argv ){
// show help
if(argc<2){
cout<<
" Usage: example_tracking_kcf <video_name>\n"
" examples:\n"
" example_tracking_kcf Bolt/img/%04.jpg\n"
" example_tracking_kcf faceocc2.webm\n"
<< endl;
return 0;
}

// create the tracker
Ptr<Tracker> tracker = TrackerKCF::create();

// set input video
std::string video = argv[1];
VideoCapture cap(video);

Mat frame;

// get bounding box
cap >> frame;
Rect2d roi= selectROI("tracker", frame, true, false);

//quit if ROI was not selected
if(roi.width==0 || roi.height==0)
return 0;

// initialize the tracker
tracker->init(frame,roi);

// do the tracking
printf("Start the tracking process, press ESC to quit.\n");
for ( ;; ){
// get frame from the video
cap >> frame;

// stop the program if no more images
if(frame.rows==0 || frame.cols==0)
break;

// update the tracking result
bool isfound = tracker->update(frame,roi);
if(!isfound)
{
cout << "The target has been lost...\n";
waitKey(0);
return 0;
}

// draw the tracked object
rectangle( frame, roi, Scalar( 255, 0, 0 ), 2, 1 );

// show image with the tracked object
imshow("tracker",frame);

//quit on ESC button
if(waitKey(1)==27)break;
}
}

但是,我得到了以下错误:

tracktest.cpp: In function ‘int main(int, char**)’:
tracktest.cpp:33:7: error: ‘Tracker’ was not declared in this scope
Ptr<Tracker> tracker = TrackerKCF::create();
^
tracktest.cpp:33:14: error: template argument 1 is invalid
Ptr<Tracker> tracker = TrackerKCF::create();
^
tracktest.cpp:33:26: error: ‘TrackerKCF’ has not been declared
Ptr<Tracker> tracker = TrackerKCF::create();
^
tracktest.cpp:43:54: error: ‘selectROI’ was not declared in this scope
Rect2d roi= selectROI("tracker", frame, true, false);
^
tracktest.cpp:50:10: error: base operand of ‘->’ is not a pointer
tracker->init(frame,roi);
^
tracktest.cpp:63:27: error: base operand of ‘->’ is not a pointer
bool isfound = tracker->update(frame,roi);
^
./tracktest.sh: line 5: ./tracktest: No such file or directory

我尝试重新安装 OpenCV 3.1.0 和相应的 contrib repo,看起来 make 完成得很好。我还试图找到 tracker.cpp 在我的 OpenCV 源目录中的位置,但没有弹出任何内容。

我假设这是因为我错误地安装了 contrib 模块,但我不确定。谁能弄清楚出了什么问题?提前致谢。

最佳答案

由于我莫名其妙的愚蠢,我忘记运行make install。现在一切都好!

关于c++ - OpenCV:无法从 contrib 存储库中找到模块(Tracker、selectROI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44644133/

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