diff --git a/modules/datasets/samples/track_vot.cpp b/modules/datasets/samples/track_vot.cpp index 67525f21f..4b5937604 100644 --- a/modules/datasets/samples/track_vot.cpp +++ b/modules/datasets/samples/track_vot.cpp @@ -82,8 +82,8 @@ int main(int argc, char *argv[]) for (int i = 0; i < dataset->getDatasetLength(datasetID); i++) { Mat frame; - dataset->getNextFrame(frame); - + if (!dataset->getNextFrame(frame)) + break; //Draw Ground Truth BB vector gtPoints = dataset->getGT(); for (int j = 0; j < (int)(gtPoints.size()-1); j++) diff --git a/modules/datasets/src/track_vot.cpp b/modules/datasets/src/track_vot.cpp index aedea40e3..e582f2b5f 100644 --- a/modules/datasets/src/track_vot.cpp +++ b/modules/datasets/src/track_vot.cpp @@ -211,7 +211,10 @@ namespace cv bool TRACK_votImpl::getNextFrame(Mat &frame) { - frame = imread(data[activeDatasetID - 1][frameCounter]->imagePath); + if (frameCounter >= (int)data[activeDatasetID - 1].size()) + return false; + string imgPath = data[activeDatasetID - 1][frameCounter]->imagePath; + frame = imread(imgPath); frameCounter++; return !frame.empty(); }