【发布时间】:2016-05-09 17:00:55
【问题描述】:
我做了一个简单的跟踪器。所以现在我需要获取相同点的坐标。我需要打印相同的坐标,例如 (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);
}
【问题讨论】:
-
请添加一些关于您正在使用的库的信息。我只是猜到是 OpenCV。
-
我不确定为什么选择 sprintf 而不是 stringstream,但是当更改 sss 字符串中的格式时,您必须考虑是否有足够的内存来放置两个整数而不是一个在那里。
-
感谢所有回答。这是我在一些教程中找到的唯一替代方法,可以在我创建的点附近打印我的文本。无论如何,如果您对此有任何更好的选择,那将非常好。我真的很想用同一点的坐标x,y代替点的编号。
标签: c++ coordinates tracker