C++点坐标
C++ point coordinates
我做了一个简单的跟踪器。所以现在我需要获取相同点的坐标。我需要打印与 (x,y) 相同的坐标,而不是点数。
我该怎么做。
我正在使用 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);
}
我不知道图书馆,只是用谷歌搜索 cv::Point
,但我猜:
sprintf(sss, "(%d,%d)", p1.x, p1.y);
见http://docs.opencv.org/3.1.0/db/d4e/classcv_1_1Point__.html#pub-attribs
编辑: 正如评论者 zoska 正确指出的那样,您还必须确保为 sss
字符串缓冲区分配了足够的 space保留整个格式化值!
我做了一个简单的跟踪器。所以现在我需要获取相同点的坐标。我需要打印与 (x,y) 相同的坐标,而不是点数。
我该怎么做。 我正在使用 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);
}
我不知道图书馆,只是用谷歌搜索 cv::Point
,但我猜:
sprintf(sss, "(%d,%d)", p1.x, p1.y);
见http://docs.opencv.org/3.1.0/db/d4e/classcv_1_1Point__.html#pub-attribs
编辑: 正如评论者 zoska 正确指出的那样,您还必须确保为 sss
字符串缓冲区分配了足够的 space保留整个格式化值!