だから、ドットの座標を検出するプロジェクトに取り組んでいます。
から検出された座標を抽出しstd::vector<cv::Point> dots
、x 座標と y 座標をそれぞれ と に格納std::vector<int> dotsX
しstd::vector<int> dotsY
ます。(代わりにdots.x
orを使用できることはわかっていますが、それは私が望んでいるものではありません)dots.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 など)。
なぜそれが起こっているのかわかりません。
どんな助けでも大歓迎です。ありがとうございました