I am just a starter in c++, i need to draw object on existing four markers with a delay between each marker and the other, i tried to use Chrono_ sleep_until, but it causes my program to lag, and even the object is instantly appearing and disappearing onsecond marker, i know that there is something wrong but can not guess what it may be, any help?
std::vector<int> ids;
std::vector<std::vector<cv::Point2f> > corners;
cv::aruco::detectMarkers(image, marker_dict, corners, ids);
// Draw markers using opencv tool
cv::aruco::drawDetectedMarkers(mid, corners, ids);
// Draw markers custom
for (size_t i = 0; i < corners.size(); ++i)
{
// Convert to integer ponits
int num = static_cast<int>(corners[i].size());
std::vector<cv::Point> points;
for (size_t j = 0; j < corners[i].size(); ++j)
points.push_back(cv::Point(static_cast<int>(corners[i][j].x), static_cast<int>(corners[i][j].y)));
const cv::Point* pts = &(points[0]);
// Draw
if (ids.at(i) == 32) {
cv::fillPoly(right, &pts, &num, 1, cv::Scalar(255, 0, 0));
}
std::chrono::system_clock::time_point timePoint = std::chrono::system_clock::now() + std::chrono::seconds(2);
std::this_thread::sleep_until(timePoint);
if (ids.at(i) == 45) {
cv::fillPoly(right, &pts, &num, 1, cv::Scalar(255, 0, 0));
break;
}