Получить Кут, перейти в ул.

В ARuco маркер — это пользовательский класс.

Используя строку: cout<<Markers[0]; Где маркеры vector<Marker>

Следующий пример может быть выведен: 185=(61.277,163.281) (186.9,174.062) (182.589,293.509) (55.8044,296.465) Txyz=-999999 -999999 -999999 Rxyz=-999999 -999999 -999999

Мне нужны первые 4 набора чисел, но на самом деле они не являются доступным атрибутом класса через markername.attributename. Единственный способ получить их вывод — через cout. Все остальное получает мне адрес, например 0xbf76ea14

Итак, два возможных ответа я вижу:
1) Самый простой способ получить строку после cout и получить ее в строку, с которой я могу работать
2) Любой способ обмануть его, думая, что его печать заставляет и пропустить шаг?

-3

Решение

Вы не можете программно получить вещи, которые уже были отправлены cout,

Вместо этого вы можете вывести элемент в буфер памяти:

#include <sstream>
#include <ostream>
#include <string>

// ...

std::ostringstream oss;
oss << Markers[0];
std::string the_output = oss.str();

// you write some code to parse out the info you want from this string
0

Другие решения

От Аруко источник вы можете увидеть для оператора вставки потока, который он использует:

for (int i=0;i<4;i++)
str<<"("<<M[i].x<< ","<<M[i].y<<") ";

Предполагая, что Маркеры имеют тип aruno::Marker Вы должны быть в состоянии просто использовать Markers[0].x чтобы получить значение х первой точки.

Если вместо этого Маркеры имеет тип std::vector<aruno::Marker> тогда вы можете получить к нему доступ, используя Markers[0][0].x,

0

По вопросам рекламы [email protected]