سلام
من دارم از الگوریتم KFC تو نرم افزار opencv استفاده میکنم. تنها مشکل من اینه که وقتی الگوریتم هدف رو گم میکنه یا هدف از تصویر خارج میشه، الگوریتم متوجه این گم شدن هدف نمیشه و به کار خودش ادامه میده و به عبارتی مستطیل کشیده شده دور هدف همچنان باقی هستش.این کدهایی که استفاده کردمه:


int main(int argc, char** argv) {
Rect2d roi;
Mat frame;

// create a tracker object
Ptr<Tracker> tracker = Tracker::create("KCF");

VideoCapture cap("C2_0002.mp4");

cap >> frame;
resize(frame, frame, Size(frame.cols / 2, frame.rows / 2));
roi = selectROI("tracker", frame);
//quit if ROI was not selected
if (roi.width == 0 || roi.height == 0)
return 0;
// initialize the tracker
tracker->init(frame, roi);
// perform the tracking process
printf("Start the tracking process, press ESC to quit.\n");
for (;; ) {

// get frame from the video
cap >> frame;
resize(frame, frame, Size(frame.cols / 2, frame.rows / 2));
// stop the program if no more images
if (frame.rows == 0 || frame.cols == 0)
break;
// update the tracking result
tracker->update(frame, roi);

rectangle(frame, roi, Scalar(255, 0, 0), 2, 1);

imshow("tracker", frame);
if (waitKey(1) == 27)break;
}
}

همچنین یه ویدئو کوتاه از شبیه سازی انجام شده آپلود کردم که اگه خواستین می تونین ببینین.

مهمان عزیز شما حق دیدن لینک ها را ندارید

عضویت


اگه کسی میدونه مشکل رو چطور می تونم برطرف کنم ممنون میشم کمکم کنه.