所以,我正在做一个检测点坐标的项目。
std::vector<cv::Point> dots
我从x 和 y 坐标中提取检测到的坐标并将其存储到std::vector<int> dotsX
和std::vector<int> dotsY
中。(我知道我可以使用dots.x
ordots.y
代替,但这不是我想要的)
每当我想打印输出时,我都会在for
循环和while
循环之间得到不同的结果来显示值向量。例如:
检测到的 X 坐标为 15、20、50,检测到的 Y 坐标为 2、10、20。
如果我使用for
循环:
for(int x=0;x < dotsX.size();x++)
{
std::cout << dotsX[x] << std::endl;
}
输出相同:15,20,50。
但是,如果我使用while
循环:
int x=0;
while(dotsX[x])
{
std::cout << dotsX[x] << std::endl;
x++;
}
输出很奇怪:15、20、50、32。其中总是有一个附加值(例如值 32,有时是 10201 或 4 等)。
我不知道为什么会这样。
任何帮助将不胜感激。谢谢