Координаты точки 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
строковый буфер для хранения всего отформатированного значения!