Координаты точки C++

Я сделал простой трекер. Так что теперь мне нужно получить координаты тех же точек. Мне нужно напечатать те же координаты, как (х, у) вместо номера точки.

Как мне это сделать. Я использую Linux.

Пожалуйста, будьте немного конкретны, потому что я изучаю C++, и я не эксперт.

for(i = 0; i < n; i++){    
    if(visi.at<int>(i,0) == 0) 
        continue;
    p1 = cv::Point(shape.at<double>(i,0),shape.at<double>(i+n,0));

    c1 = CV_RGB(255,255,0); 
    c2 = CV_RGB(255,0,0);
    c3 = CV_RGB(0,0,0);
    c4 = CV_RGB(255,255,255);

    cv::circle(image,p1,1,c3);
    cv::circle(image,p1,2,c1); 
    cv::circle(image,p1,3,c2);  

    sprintf(sss,"%d",i); text = sss;
    cv::putText(image,text,p1,CV_FONT_HERSHEY_SIMPLEX,0.3,c4);    
}

1 ответ

Решение

Я не знаю библиотеку, просто гуглил cv::Point, но я бы догадался:

sprintf(sss, "(%d,%d)", p1.x, p1.y);

См. http://docs.opencv.org/3.1.0/db/d4e/classcv_1_1Point__.html

РЕДАКТИРОВАТЬ: Как правильно заметил комментатор Zoska, вы также должны убедиться, что есть достаточно места для sss строковый буфер для хранения всего отформатированного значения!

Другие вопросы по тегам